以下のような1つのprocを作成したいのですが、構文にエラーがあります。誰かが問題を指摘できますか?
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'.
代わりに次のコマンドを使用してください。
ALTER TABLE table_name DISABLE TRIGGER tr_name
ALTER TABLE table_name ENABLE TRIGGER tr_name
SQLではDISABLE
キーワードではない であるため、前の行は;
で終わる必要があります。例えば:
BEGIN
;
DISABLE TRIGGER ...
マークが述べたように、前のステートメントはセミコロンで終了する必要があります。以下を使用できます。
; DISABLE TRIGGER dbo.tr_name ON dbo.table_name
新しい行のENABLE TRIGGER OR DISABLE TRIGGERの後にGOを書き込みます。例:
DISABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
-- some update statement
ENABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
以下は、トリガーを有効または無効にするダイナミックスクリプトです。
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