DROP TRIGGER(Transact-SQL)

현재 데이터베이스에서 하나 이상의 DML, DDL 또는 LOGON 트리거를 제거합니다.

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

구문

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER schema_name.trigger_name [ ,...n ] [ ; ]

Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON { DATABASE | ALL SERVER } 
[ ; ]

Trigger on a LOGON event (Logon Trigger)

DROP TRIGGER trigger_name [ ,...n ] 
ON ALL SERVER 

인수

  • schema_name
    DML 트리거가 속한 스키마의 이름입니다. DML 트리거의 범위는 해당 트리거가 만들어진 테이블이나 뷰의 스키마로 한정됩니다. DDL 또는 LOGON 트리거에 대해서는 schema_name을 지정할 수 없습니다.
  • trigger_name
    제거할 트리거의 이름입니다. 현재 생성된 트리거 목록을 보려면 sys.triggers(Transact-SQL)를 사용합니다.
  • DATABASE
    현재 데이터베이스에 적용된 DDL 트리거의 범위를 나타냅니다. 트리거를 만들거나 수정할 때 DATABASE를 지정한 경우 DATABASE를 지정해야 합니다.
  • ALL SERVER
    현재 서버에 적용된 DDL 또는 LOGON 트리거의 범위를 나타냅니다. 트리거를 만들거나 수정할 때 ALL SERVER를 지정한 경우 ALL SERVER를 지정해야 합니다.

주의

트리거 또는 트리거 테이블을 삭제하여 DML 트리거를 제거할 수 있습니다. 테이블을 삭제하면 이와 연결된 모든 트리거도 삭제됩니다.

트리거를 삭제하면 sys.objects, sys.triggerssys.sql_modules 카탈로그 뷰에서 트리거 정보가 제거됩니다.

같은 ON 절을 사용하여 만든 DDL 트리거에 대해서만 하나의 DROP TRIGGER 문으로 여러 개의 DDL 트리거를 삭제할 수 있습니다.

트리거의 이름을 바꾸려면 DROP TRIGGER와 CREATE TRIGGER를 사용합니다. 트리거의 정의를 변경하려면 ALTER TRIGGER를 사용합니다.

특정 트리거의 종속 관계 결정에 대한 자세한 내용은 sp_depends(Transact-SQL)sys.sql_dependencies(Transact-SQL)를 참조하십시오.

트리거의 텍스트 보기에 대한 자세한 내용은 sp_helptext(Transact-SQL)sys.sql_modules(Transact-SQL)를 참조하십시오.

기존 트리거의 목록 보기에 대한 자세한 내용은 sys.triggers(Transact-SQL)sys.server_triggers를 참조하십시오.

사용 권한

DML 트리거를 삭제하려면 트리거가 정의된 테이블 또는 뷰에 대한 ALTER 권한이 필요합니다.

서버 범위(ON ALL SERVER)로 정의된 DDL 트리거 또는 LOGON 트리거를 삭제하려면 현재 서버에서 CONTROL SERVER 권한이 필요합니다. 데이터베이스 범위(ON DATABASE)로 정의된 DDL 트리거를 삭제하려면 현재 데이터베이스에서 ALTER ANY DATABASE DDL TRIGGER 권한이 필요합니다.

1. DML 트리거 삭제

다음 예에서는 employee_insupd 트리거를 삭제합니다.

USE AdventureWorks;
GO
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
   DROP TRIGGER employee_insupd;
GO

2. DDL 트리거 삭제

다음 예에서는 safety DDL 트리거를 삭제합니다.

ms173497.note(ko-kr,SQL.90).gif중요:
DDL 트리거는 스키마 범위가 아니고 따라서 sys.objects 카탈로그 뷰에 표시되지 않기 때문에 OBJECT_ID 함수를 사용하여 데이터베이스에 DDL 트리거가 있는지 여부를 쿼리할 수 없습니다. 스키마 범위가 아닌 개체는 해당 카탈로그 뷰를 사용하여 쿼리해야 합니다. DDL 트리거의 경우 sys.triggers를 사용합니다.
USE AdventureWorks;
GO
IF EXISTS (SELECT * FROM sys.triggers
    WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
ON DATABASE;
GO

참고 항목

참조

ALTER TRIGGER(Transact-SQL)
CREATE TRIGGER(Transact-SQL)
ENABLE TRIGGER(Transact-SQL)
DISABLE TRIGGER(Transact-SQL)
EVENTDATA(Transact-SQL)
sp_help(Transact-SQL)
sp_helptrigger(Transact-SQL)
sys.objects(Transact-SQL)
sys.triggers(Transact-SQL)
sys.trace_events(Transact SQL)
sys.sql_modules(Transact-SQL)
sys.assembly_modules(Transact-SQL)
sys.server_triggers
sys.server_trigger_events
sys.server_sql_modules
sys.server_assembly_modules(Transact-SQL)

관련 자료

DML 트리거에 대한 정보 가져오기
DDL 트리거에 대한 정보 가져오기

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • SQL Server 2005 서비스 팩 2에서 도입된 LOGON 트리거와 관련된 구문 및 사용 권한에 대한 정보를 추가했습니다.