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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <Davelop@discussions.microsoft.com> a écrit dans le message de
news: D48377B2-6207-4991-B5D4-A3E8FE8E4C6B@microsoft.com...
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
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
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 >
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" <Davelop@discussions.microsoft.com> a écrit dans le message de
news: D48377B2-6207-4991-B5D4-A3E8FE8E4C6B@microsoft.com...
> 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
>
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 >