DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL } ON { object_name | DATABASE | ALL SERVER } [ ; ]
트리거는 기본적으로 만들 때 활성화됩니다. 트리거를 비활성화하면 트리거는 삭제되지 않고 현재 데이터베이스에 개체로 남아 있습니다. 그러나 해당 트리거가 프로그래밍된 Transact-SQL 문을 실행하는 경우에도 트리거는 실행되지 않습니다. ENABLE TRIGGER를 사용하여 트리거를 다시 활성화할 수 있습니다. 테이블에 정의된 DML 트리거는 ALTER TABLE을 사용하여 비활성화되거나 활성화될 수도 있습니다.
다음 예에서는 Address 테이블에 만들어진 uAddress 트리거를 비활성화합니다.
USE AdventureWorks2008R2; GO DISABLE TRIGGER Person.uAddress ON Person.Address; GO
다음 예에서는 데이터베이스 범위에서 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
다음 예에서는 서버 범위에서 만든 모든 DDL 트리거를 비활성화합니다.
USE AdventureWorks2008R2; GO DISABLE Trigger ALL ON ALL SERVER; GO
문자열 채우기 (0) | 2011.12.06 |
---|---|
SQL Server 2008 Service Pack 3 가 나왔네요. (0) | 2011.11.09 |
SQL Server 2008에서 로그 파일 자르기 (0) | 2011.09.20 |
RAISERROR 예제 및 .NET에서 사용하기 (0) | 2011.09.01 |
TRY ~ CATCH (0) | 2011.05.26 |