Fantômes

Résolu
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 - 30 nov. 2006 à 16:54
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 - 1 déc. 2006 à 11:18
Bonjour,
je ne suis pas un grand spécialiste de SQL Server c'est la raison pour laquelle je fais appel a vos connaissances.
Présentattion de la problématique.
J'ai une première table, MaTablePrincipale
qui disons se compose des champs suivant.
<hr size= "2" width="100%" />Numéro_Composant int
Code_Composant int
Libelle varchar
toUpdate qui est un booléen
<hr size="2" width="100%" />
J'ai également une seconde table MaTableFantome
Numéro_Composant int
Code_Composant int
Libelle varchar.

pour que les choses soient un peu plus claire un petit exemple de jeux de données
MaTablePrincipale
Numero | Code | Libelle | toUpdate |
<hr size ="2" width= "100%" />1           |  111   |    C1   |       0       |
2           |  222   |    C2   |       1       |
3           |  333   |    C3   |       0       |

MaTableFantome

Numero | Code | Libelle |
<hr size ="2" width= "100%" />222       |  10     |    L11   |

222       |  20     |    L12   | 

333       |  333   |    L31   |

Nous en arrivons à la question.
L'objectif est que pour la ligne marquer toUpdate, que je la remplace par les lignes qui lui correspondent dans ma table fantome.
Alors j'ai bien une requete
qui est
Update MaTablePrincipale
Set
Numéro_Composant = f.Numéro_Composant
Code_Composant = f.Numéro_Composant
Libelle = f.Libelle
toUpdate = 0
From MaTableFantome f, MaTablePrincipale p
Where f.Numéro_Composant = p.Numéro_Composant
AND p.toUpdate = 1

Mais cette requete remplace ma ligne Principale par la première ligne correspondan dans la table Fantome, il m'en manque donc.

A bonne entendeur Salut
et Merci par avance

1 réponse

Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
1 déc. 2006 à 11:18
j'ai trouvé une solution qui me fait presque la même chose.

1) INSERT INTO MaTablePrincipale (Numéro_Composant, Code_Composant, Libelle  ) SELECT * FROMMaTableFantome
2 ) DELETEMaTablePrincipaleWHERE toUpdate = 1
3
Rejoignez-nous