Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trigger d'insertion

2 réponses
Avatar
Davelop
Bonjour,

Je suis plutot débutant et je cherche le moyen de faire un trigger
permettant à chaque nouvel INSERT dans une table d'aller faire un autre
INSERT dans une autre table en récupérant la clé primaire de la 1ère table
dans un champ de la 2ème table. mais je n'y arrive pas. syntaxe ?

Exemple :
CREATE TRIGGER newtrig1 ON table1
FOR INSERT
AS
Begin
INSERT INTO table2 ( NumCli)
SELECT [Numcli]
FROM table1;
End

[Numcli] de table1 est celui venant juste d'être créé qui doit doit etre
inséré dans table2

Merci beaucoup d'avance de votre réponse
David

2 réponses

Avatar
TopBidouille
Bonjour,
vous y etes presque...
en fait lorsque on fait une opération de DELETE INSERT ou UPDATE sur une
table, SQLServeur crée des pseudos tables qui ont la meme structure que la
table sur laquelle on fait l'opération.
ces tables s'appellent deleted et inserted.

la syntaxe de votre trigger devrait donc etre plutôt du style (non testé)
CREATE TRIGGER newTrig1 on table1
FOR INSERT
AS
INSERT INTO table2(Numcli, <mesautresvaleurs>)
SELECT NumCli,<mesautresvaleurs>
FROM inserted

Cordialement,
Christophe




"Davelop" a écrit dans le message de
news:
Bonjour,

Je suis plutot débutant et je cherche le moyen de faire un trigger
permettant à chaque nouvel INSERT dans une table d'aller faire un autre
INSERT dans une autre table en récupérant la clé primaire de la 1ère table
dans un champ de la 2ème table. mais je n'y arrive pas. syntaxe ?

Exemple :
CREATE TRIGGER newtrig1 ON table1
FOR INSERT
AS
Begin
INSERT INTO table2 ( NumCli)
SELECT [Numcli]
FROM table1;
End

[Numcli] de table1 est celui venant juste d'être créé qui doit doit etre
inséré dans table2

Merci beaucoup d'avance de votre réponse
David



Avatar
Davelop
Youhouuu merci beaucoup !

ça marche ! :)



"TopBidouille" wrote:

Bonjour,
vous y etes presque...
en fait lorsque on fait une opération de DELETE INSERT ou UPDATE sur une
table, SQLServeur crée des pseudos tables qui ont la meme structure que la
table sur laquelle on fait l'opération.
ces tables s'appellent deleted et inserted.

la syntaxe de votre trigger devrait donc etre plutôt du style (non testé)
CREATE TRIGGER newTrig1 on table1
FOR INSERT
AS
INSERT INTO table2(Numcli, <mesautresvaleurs>)
SELECT NumCli,<mesautresvaleurs>
FROM inserted

Cordialement,
Christophe




"Davelop" a écrit dans le message de
news:
> Bonjour,
>
> Je suis plutot débutant et je cherche le moyen de faire un trigger
> permettant à chaque nouvel INSERT dans une table d'aller faire un autre
> INSERT dans une autre table en récupérant la clé primaire de la 1ère table
> dans un champ de la 2ème table. mais je n'y arrive pas. syntaxe ?
>
> Exemple :
> CREATE TRIGGER newtrig1 ON table1
> FOR INSERT
> AS
> Begin
> INSERT INTO table2 ( NumCli)
> SELECT [Numcli]
> FROM table1;
> End
>
> [Numcli] de table1 est celui venant juste d'être créé qui doit doit etre
> inséré dans table2
>
> Merci beaucoup d'avance de votre réponse
> David
>