[SQL SERVER 2005] Trigger Oracle vers SQL server
Salut !
J'ai un petit problème, je souhaite traduire ce trigger :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
CREATE OR REPLACE TRIGGER updateNumCmde ON PROPOSITIONCOMMERCIALE
AFTER UPDATE(numbcpc) FOR EACH ROW
DECLARE
v_numBC PROPOSITIONCOMMERCIALE.numbcpc%TYPE;
v_numDA PROPOSITIONCOMMERCIALE.numDA%TYPE;
BEGIN
--on écrase le numéro de commande sil existait
v_numBC := :new.numbcpc ;
v_numDA := :new.numDA;
UPDATE DEMANDEACHAT SET numbcda=v_numBC WHERE numDA=v_numDA
END; |
qui marche très bien sur une base de données oracle mais qui ne passe plus sur SQL server
après des recherches sur Internet, j'ai cru comprendre que la syntaxe n'était pas la même... Mais je n'arrive pas à trouver ce que je cherche :?
Merci pour votre future aide :):king:
----
Je pense que je m'approche :
Code:
1 2 3 4 5 6
|
ALTER TRIGGER [dbo].[TriggerMajPC_DA]
on [dbo].[PROPOSITIONCOMMERCIALE]
for UPDATE
AS
UPDATE DEMANDEACHAT SET numbcda=(select numbcpc from UPDATED) WHERE numDA=(select numDA from UPDATED) |
Updated n'est pas reconnu :lol: (j'ai tenté le calquage sur INSERTED )
----
Pour les autres
Dans un trigger, il y a deux tables virtuelles : inserted et deleted
pour un update, les deux existent, inserted contenant les nouvelles valeurs, et deleted, les anciennes.
Source : Internet :mrgreen:
Code:
1 2 3 4 5 6
|
ALTER TRIGGER [dbo].[TriggerMajPC_DA]
on [dbo].[PROPOSITIONCOMMERCIALE]
for UPDATE
AS
UPDATE DEMANDEACHAT SET numbcda=(select numbcpc from INSERTED) WHERE numDA=(select numDA from INSERTED) |