J'essaie de déterminer si je devrais créer ou modifier et triggersr. Mon code est ci-dessous.
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); else CREATE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory WITH ENCRYPTION AFTER INSERT, UPDATE AS RAISERROR ('Notify Compensation', 16, 10);
Les erreurs que je reçois sont:
A quoi devrait ressembler ce code?
Si vous ne voulez pas que l'instruction create sortinggger soit SQL dynamic, vous pouvez faire quelque chose comme ceci:
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL exec sp_executesql N'DROP TRIGGER Sales.bonus_reminder'; GO CREATE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory WITH ENCRYPTION AFTER INSERT, UPDATE AS RAISERROR ('Notify Compensation', 16, 10);
Utiliser le SQL dynamic
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL EXEC(' ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR (''Notify Compensation'', 16, 10)' ); else EXEC(' CREATE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory WITH ENCRYPTION AFTER INSERT, UPDATE AS RAISERROR (''Notify Compensation'', 16, 10)' );