Je veux créer un proc comme ci-dessous mais il y a une erreur sur la syntaxe . Quelqu'un pourrait-il signaler le problème?
Create PROCEDURE [dbo].[my_proc] AS
BEGIN
DISABLE TRIGGER dbo.tr_name ON dbo.table_name
-- some update statement
ENABLE TRIGGER dbo.tr_name ON dbo.table_name
END
** Error Message : Incorrect syntax near 'ENABLE'.
utilisez plutôt les commandes suivantes:
ALTER TABLE table_name DISABLE TRIGGER tr_name
ALTER TABLE table_name ENABLE TRIGGER tr_name
La ligne précédente doit se terminer par ;
car dans SQL DISABLE
n'est pas un mot clé . Par exemple:
BEGIN
;
DISABLE TRIGGER ...
Comme Mark l'a mentionné, la déclaration précédente devrait être terminée par un point-virgule. Pour que vous puissiez utiliser:
; DISABLE TRIGGER dbo.tr_name ON dbo.table_name
Après que ENABLE TRIGGER OR DISABLE TRIGGER dans une nouvelle ligne, écrivez GO, Exemple:
DISABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
-- some update statement
ENABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
Vous trouverez ci-dessous le script dynamique pour activer ou désactiver les déclencheurs.
select 'alter table '+ (select Schema_name(schema_id) from sys.objects o
where o.object_id = parent_id) + '.'+object_name(parent_id) + ' ENABLE TRIGGER '+
Name as EnableScript,*
from sys.triggers t
where is_disabled = 1