DISABLE TRIGGER(Transact-SQL)

업데이트: 2006년 12월 12일

DML, DDL 또는 LOGON 트리거를 비활성화합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]

인수

  • schema_name
    트리거가 속한 스키마의 이름입니다. DDL 또는 LOGON 트리거의 경우 schema_name을 지정할 수 없습니다.
  • trigger_name
    비활성화할 트리거의 이름입니다.
  • ALL
    ON 절의 범위에서 정의된 모든 트리거가 비활성화되었음을 나타냅니다.

    ms189748.Caution(ko-kr,SQL.90).gif주의:
    SQL Server는 병합 복제용으로 게시된 데이터베이스에서 트리거를 만듭니다. 게시된 데이터베이스에서 ALL을 지정하면 이 두 트리거가 비활성화되어 복제가 중단됩니다. ALL을 지정하려면 먼저 현재 데이터베이스가 병합 복제용으로 게시되었는지를 확인하십시오.
  • object_name
    실행할 DML 트리거 trigger_name이 만들어진 테이블 또는 뷰의 이름입니다.
  • DATABASE
    DDL 트리거의 경우 데이터베이스 범위에서 실행하도록 trigger_name 을 만들거나 수정했음을 나타냅니다.
  • ALL SERVER
    DDL 또는 LOGON 트리거의 경우 서버 범위에서 실행하도록 trigger_name을 만들거나 수정했음을 나타냅니다.

주의

트리거는 기본적으로 만들 때 활성화됩니다. 트리거를 비활성화하면 트리거는 삭제되지 않고 현재 데이터베이스에 개체로 남아 있습니다. 그러나 해당 트리거가 프로그래밍된 Transact-SQL 문을 실행하는 경우에도 트리거는 실행되지 않습니다. ENABLE TRIGGER를 사용하여 트리거를 다시 활성화할 수 있습니다. 테이블에 정의된 DML 트리거는 ALTER TABLE을 사용하여 비활성화되거나 활성화될 수도 있습니다.

사용 권한

DML 트리거를 비활성화하려면 사용자에게 최소한 트리거를 만든 테이블 또는 뷰에 대한 ALTER 권한이 필요합니다.

서버 범위(ON ALL SERVER)에서 DDL 또는 LOGON 트리거를 비활성화하려면 서버에 대한 CONTROL SERVER 권한이 필요합니다. 데이터베이스 범위(ON DATABASE)에서 DDL 트리거를 비활성화하려면 사용자에게 최소한 현재 데이터베이스에서 ALTER ANY DATABASE DDL TRIGGER 권한이 필요합니다.

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 및 LOGON 트리거를 비활성화하는 방법을 보여 줍니다.

USE AdventureWorks;
GO
DISABLE Trigger ALL ON ALL SERVER;
GO

참고 항목

참조

ENABLE TRIGGER(Transact-SQL)
ALTER TRIGGER(Transact-SQL)
CREATE TRIGGER(Transact-SQL)
DROP TRIGGER(Transact-SQL)
sys.triggers(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • SQL Server 2005 서비스 팩 2에서 도입된 LOGON 트리거에 대한 정보를 항목 전체에 추가했습니다.