J'essaie de créer un déclencheur de mise à jour qui ne devrait être appelé que si la colonne ReturnedOn est cliquée.Erreur dans la condition if - MS SQL server
J'ai utilisé le suivant bout de code, mais il génère l'erreur:
CODAGE:
CREATE TRIGGER trg_ForUpdateOnBookIssuedDetails
on BOOKISSUEDDETAILS
For update
as
begin
declare @Rows1 int,@Rows2 int
if(update(ReturnedOn)
begin
IF EXISTS(SELECT 1 FROM INSERTED)
begin
update nur
set nur.NumberOfBooksIssued = nur.NumberOfBooksIssued -1
from NewUserRegister nur inner join INSERTED i
on i.IssuedTo=nur.UserName
set @Rows1 = @@RowCount
update lbd set Inventory = Inventory +1
from LIBRARYBOOKDETAILS lbd inner join inserted i
on lbd.BookID = i.BookId
set @Rows2 = @@rowcount
if @Rows1 * @rows2 >0
commit tran
else
begin
raiserror('Error Updating the Database',16,-1)
rollback tran
end
end
end
end
DÉCLARATION D'ERREUR:
Msg 156, Niveau 15, État 1, Procédure trg_ForUpdateOnBookIssuedDetails, Ligne 9 Syntaxe incorrecte près du mot clé 'begin'.
Je souhaite que le déclencheur soit déclenché uniquement si la colonne ReturnedOn est mise à jour, mais si une autre colonne est mise à jour, le déclencheur ne doit pas être déclenché.
Quelqu'un peut-il m'aider à identifier l'erreur et les modifications que je devrais apporter pour corriger cette erreur?
Merci d'avance !!
Avez-vous vraiment besoin de demander SO pour une erreur de syntaxe? – Welbog