SQL Update Trigger conditionnel

Je travaille sur des triggersurs en sql. J'essaie de faire un triggersur de mise à jour, mais je veux que cela fonctionne seulement si une certaine condition est remplie.

Par exemple, disons que j'ai une table X et deux colonnes A, B. Je ne veux pouvoir mettre à jour A ou B que lorsque A est inférieur à B pour que les nouvelles valeurs soient mises à jour.

Donc je fais un sortinggger comme ça

create sortinggger usortinggger on X for update as if (update(A) OR update(B)) begin if (A>B) RAISERROR (N' Incorrect %s %d.', -- Message text. 10, -- Severity, 1, -- State, N'number', -- First argument. 5); -- Second argument. 

fin

Cependant je pense que je le fais mal. Qu'est-ce qui ne va pas?

Vous devez utiliser la table virtuelle INSERTED.

 create sortinggger usortinggger on X for update as if (update(A) OR update(B)) begin if exists (SELECT * -- this subquery breaches the condition FROM INSERTED WHERE A>=B) -- might need some isnull if nulls are not allowed RAISERROR (N' Incorrect %s %d.', -- Message text. 10, -- Severity, 1, -- State, N'number', -- First argument. 5); -- Second argument. end