DML 트리거 삭제 또는 해제Delete or Disable DML Triggers

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 DML 트리거를 삭제하거나 비활성화하는 방법에 대해 설명합니다.This topic describes how to delete or disable a DML trigger in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

권장 사항 Recommendations

  • 트리거를 삭제하면 현재 데이터베이스에서 트리거가 삭제됩니다.When a trigger is deleted, it is dropped from the current database. 트리거의 기반이 되는 테이블과 데이터는 영향을 받지 않습니다.The table and the data upon which it is based are not affected. 테이블을 삭제하면 테이블에 있는 트리거도 자동으로 삭제됩니다.Deleting a table automatically deletes any triggers on the table.

  • 트리거를 만들면 이 트리거는 기본적으로 활성화됩니다.A trigger is enabled by default when it is created.

  • 트리거를 비활성화하면 트리거는 삭제되지 않고Disabling a trigger does not drop it. 현재 데이터베이스의 개체로 남아 있습니다.The trigger still exists as an object in the current database. 그러나 해당 트리거가 프로그래밍된 INSERT, UPDATE 또는 DELETE 문이 실행될 때 트리거가 실행되지 않습니다.However, the trigger will not fire when any INSERT, UPDATE, or DELETE statement on which it was programmed is executed. 트리거를 해제했다가 다시 설정할 수 있습니다.Triggers that are disabled can be reenabled. 트리거를 활성화하더라도 트리거를 다시 만드는 것은 아닙니다.Enabling a trigger does not re-create it. 트리거는 원래 생성되었을 때와 동일하게 발생됩니다.The trigger fires in the same manner as when it was originally created.

보안 Security

사용 권한 Permissions

DML 트리거를 삭제하려면 트리거가 정의된 테이블 또는 뷰에 대한 ALTER 권한이 필요합니다.To delete a DML trigger requires ALTER permission on the table or view on which the trigger is defined.

DML 트리거를 비활성화하거나 활성화하려면 사용자에게 트리거가 만들어진 테이블 또는 뷰에 대한 ALTER 권한이 있어야 합니다.To disable or enable a DML trigger, at a minimum, a user must have ALTER permission on the table or view on which the trigger was created.

SQL Server Management Studio 사용 Using SQL Server Management Studio

DML 트리거를 삭제하려면To delete a DML trigger

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine and then expand that instance.

  2. 원하는 데이터베이스를 확장하고 테이블을 확장한 다음 삭제할 트리거가 포함된 테이블을 확장합니다.Expand the database that you want, expand Tables, and then expand the table that contains the trigger that you want to delete.

  3. 트리거를 확장하고 삭제할 트리거를 마우스 오른쪽 단추로 클릭한 다음 삭제를 클릭합니다.Expand Triggers, right-click the trigger to delete, and then click Delete.

  4. 개체 삭제 대화 상자에서 삭제할 트리거를 확인한 다음 확인을 클릭합니다.In the Delete Object dialog box, verify the trigger to delete, and then click OK.

DML 트리거를 비활성화하거나 활성화하려면To disable and enable a DML trigger

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine and then expand that instance.

  2. 원하는 데이터베이스를 확장하고 테이블을 확장한 다음 비활성화할 트리거가 포함된 테이블을 확장합니다.Expand the database that you want, expand Tables, and then expand the table that contains the trigger that you want to disable.

  3. 트리거를 확장하고 비활성화할 트리거를 마우스 오른쪽 단추로 클릭한 다음 사용 안 함을 클릭합니다.Expand Triggers, right-click the trigger to disable, and then click Disable.

  4. 트리거를 활성화하려면 사용을 클릭합니다.To enable the trigger, click Enable.

Transact-SQL 사용 Using Transact-SQL

DML 트리거를 삭제하려면To delete a DML trigger

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣습니다.Copy and paste the following examples into the query window. 트리거를 만들려면 CREATE TRIGGER Sales.bonus_reminder 문을 실행합니다.Execute the CREATE TRIGGER statement to create the Sales.bonus_reminder trigger. 트리거를 삭제하려면 DROP TRIGGER 문을 실행합니다.To delete the trigger, execute the DROP TRIGGER statement.

--Create the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
--Delete the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  

DML 트리거를 비활성화하거나 활성화하려면To disable and enable a DML trigger

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣습니다.Copy and paste the following examples into the query window. 트리거를 만들려면 CREATE TRIGGER Sales.bonus_reminder 문을 실행합니다.Execute the CREATE TRIGGER statement to create the Sales.bonus_reminder trigger. 트리거를 비활성화하거나 활성화려면 DISABLE TRIGGERENABLE TRIGGER 문을 각각 실행합니다.To disable and enable the trigger, execute the DISABLE TRIGGER and ENABLE TRIGGER statements, respectively.

--Create the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
--Disable the trigger.  
USE AdventureWorks2012;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
--Enable the trigger.  
USE AdventureWorks2012;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

참고 항목See Also

ALTER TRIGGER(Transact-SQL) ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER(Transact-SQL) CREATE TRIGGER (Transact-SQL)
DROP TRIGGER(Transact-SQL) DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER(Transact-SQL) ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER(Transact-SQL) DISABLE TRIGGER (Transact-SQL)
EVENTDATA(Transact-SQL) EVENTDATA (Transact-SQL)
DML 트리거에 대한 정보 가져오기 Get Information About DML Triggers
sp_help(Transact-SQL) sp_help (Transact-SQL)
sp_helptrigger(Transact-SQL) sp_helptrigger (Transact-SQL)
sys.triggers(Transact-SQL) sys.triggers (Transact-SQL)
sys.trigger_events(Transact-SQL) sys.trigger_events (Transact-SQL)
sys.sql_modules(Transact-SQL) sys.sql_modules (Transact-SQL)
sys.assembly_modules(Transact-SQL) sys.assembly_modules (Transact-SQL)
sys.server_triggers(Transact-SQL) sys.server_triggers (Transact-SQL)
sys.server_trigger_events(Transact-SQL) sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules(Transact-SQL) sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules(Transact-SQL) sys.server_assembly_modules (Transact-SQL)