DISABLE TRIGGER(Transact-SQL)
SQL Server 2008
트리거를 비활성화합니다.
트리거는 기본적으로 만들 때 활성화됩니다. 트리거를 비활성화하면 트리거는 삭제되지 않고 현재 데이터베이스에 개체로 남아 있습니다. 그러나 해당 트리거가 프로그래밍된 Transact-SQL 문을 실행하는 경우에도 트리거는 실행되지 않습니다. ENABLE TRIGGER를 사용하여 트리거를 다시 활성화할 수 있습니다. 테이블에 정의된 DML 트리거는 ALTER TABLE을 사용하여 비활성화되거나 활성화될 수도 있습니다.
1. 테이블에 대한 DML 트리거 비활성화
다음 예에서는 Address 테이블에 만들어진 uAddress 트리거를 비활성화합니다.
USE AdventureWorks; GO DISABLE TRIGGER Person.uAddress ON Person.Address; GO
2. DDL 트리거 비활성화
다음 예에서는 데이터베이스 범위에서 DDL 트리거 safety를 만든 후 비활성화합니다.
IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety ON DATABASE;
GO
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
3. 같은 범위에서 정의된 모든 트리거 비활성화
다음 예에서는 서버 범위에서 만든 모든 DDL 트리거를 비활성화합니다.
USE AdventureWorks; GO DISABLE Trigger ALL ON ALL SERVER; GO
