この記事がSQLServerCentralニュースレターで最近強調表示されているのを見たところ、接続でContext_Infoを使用すると便利な方法が提供されているようです。
http://www.mssqltips.com/tip.asp?tip=1591
Terrapinによる編集:
上記のリンクには、次のコードが含まれています。
USE AdventureWorks;
GO
-- creating the table in AdventureWorks database
IF OBJECT_ID('dbo.Table1') IS NOT NULL
DROP TABLE dbo.Table1
GO
CREATE TABLE dbo.Table1(ID INT)
GO
-- Creating a trigger
CREATE TRIGGER TR_Test ON dbo.Table1 FOR INSERT,UPDATE,DELETE
AS
DECLARE @Cinfo VARBINARY(128)
SELECT @Cinfo = Context_Info()
IF @Cinfo = 0x55555
RETURN
PRINT 'Trigger Executed'
-- Actual code goes here
-- For simplicity, I did not include any code
GO
トリガーが実行されないようにする場合は、次のようにします。
SET Context_Info 0x55555
INSERT dbo.Table1 VALUES(100)