Bonjour,
il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus
de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs
B.Colonne1 WHERE B.Colonne2=A.Colonne2
SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art
AFTER UPDATE
ON
TABLE_A
AS
UPDATE TABLE_B
SET TABLE_B.Colonne1 = TABLE_A.Colonne1
WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
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
Christian Robert
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a déclenché le Trigger les enregistrement supprimés sont dans la pseudo table "deleted", les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs) ou insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B SET Colonne1 = TABLE_A.Colonne1 FROM inserted AS TABLE_A WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes en terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes valeurs c'est deleted qu'il faut...
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour, il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs B.Colonne1 WHERE B.Colonne2=A.Colonne2 SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art AFTER UPDATE ON TABLE_A AS
UPDATE TABLE_B SET TABLE_B.Colonne1 = TABLE_A.Colonne1 WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Merci de m'aider
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de
celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a déclenché
le Trigger les enregistrement supprimés sont dans la pseudo table "deleted",
les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs) ou
insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B
SET Colonne1 = TABLE_A.Colonne1
FROM inserted AS TABLE_A
WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes en
terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes
valeurs c'est deleted qu'il faut...
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour,
il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus
de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs
B.Colonne1 WHERE B.Colonne2=A.Colonne2
SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art
AFTER UPDATE
ON
TABLE_A
AS
UPDATE TABLE_B
SET TABLE_B.Colonne1 = TABLE_A.Colonne1
WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a déclenché le Trigger les enregistrement supprimés sont dans la pseudo table "deleted", les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs) ou insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B SET Colonne1 = TABLE_A.Colonne1 FROM inserted AS TABLE_A WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes en terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes valeurs c'est deleted qu'il faut...
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour, il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs B.Colonne1 WHERE B.Colonne2=A.Colonne2 SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art AFTER UPDATE ON TABLE_A AS
UPDATE TABLE_B SET TABLE_B.Colonne1 = TABLE_A.Colonne1 WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Merci de m'aider
Gerald
Merci, Il n'y a pas de secret, si on ne travaille pas son SQL, on l'oublie
"Christian Robert" (sansspam)> a écrit dans le message de news:
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a déclenché le Trigger les enregistrement supprimés sont dans la pseudo table "deleted", les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs) ou insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B SET Colonne1 = TABLE_A.Colonne1 FROM inserted AS TABLE_A WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes en terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes valeurs c'est deleted qu'il faut...
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour, il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs B.Colonne1 WHERE B.Colonne2=A.Colonne2 SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art AFTER UPDATE ON TABLE_A AS
UPDATE TABLE_B SET TABLE_B.Colonne1 = TABLE_A.Colonne1 WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Merci de m'aider
Merci,
Il n'y a pas de secret, si on ne travaille pas son SQL, on l'oublie
"Christian Robert" <christian.robert@winwise.fr (sansspam)> a écrit dans le
message de news: C4ECCD2A-4909-48E3-B0A1-DB29C1FC386D@microsoft.com...
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de
celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a
déclenché
le Trigger les enregistrement supprimés sont dans la pseudo table
"deleted",
les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs)
ou
insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B
SET Colonne1 = TABLE_A.Colonne1
FROM inserted AS TABLE_A
WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes
en
terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes
valeurs c'est deleted qu'il faut...
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour,
il y a longtemps que je n'ai pas créé de trigger et je ne me souviens
plus
de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs
B.Colonne1 WHERE B.Colonne2=A.Colonne2
SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art
AFTER UPDATE
ON
TABLE_A
AS
UPDATE TABLE_B
SET TABLE_B.Colonne1 = TABLE_A.Colonne1
WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Merci, Il n'y a pas de secret, si on ne travaille pas son SQL, on l'oublie
"Christian Robert" (sansspam)> a écrit dans le message de news:
Au niveau de la syntaxe du trigger çà va... par contre c'est le corps de celle-ci qui comporte un problème...
A partir du moment où on travaille sur la table sur laquelle on a déclenché le Trigger les enregistrement supprimés sont dans la pseudo table "deleted", les modifié "deleted" (anciennes valeurs) & "inserted" (nouvelles valeurs) ou insérer "inserted".
La requête s'écrierait plutôt :
UPDATE TABLE_B SET Colonne1 = TABLE_A.Colonne1 FROM inserted AS TABLE_A WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2
Attention aussi au fait que les jointures dans les UPDATE sont complexes en terme de syntaxe... J'ai utilisé inserted, mais si c'est les anciennes valeurs c'est deleted qu'il faut...
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Gerald" a écrit :
Bonjour, il y a longtemps que je n'ai pas créé de trigger et je ne me souviens plus de grand chose.
Je dois poser un trigger sur la table A et modifier la valeur du champs B.Colonne1 WHERE B.Colonne2=A.Colonne2 SQL me génère des erreurs, je n'arrive pas à trouver où ca pêche.
CREATE TRIGGER MAJ_Corr_Art AFTER UPDATE ON TABLE_A AS
UPDATE TABLE_B SET TABLE_B.Colonne1 = TABLE_A.Colonne1 WHERE TABLE_B.Colonne2 = TABLE_A.Colonne2