다음을 통해 공유


DML 트리거 삭제 또는 사용 안 함

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 DML 트리거를 삭제하거나 사용하지 않도록 설정하는 방법에 대해 설명합니다.

항목 내용

시작하기 전에

권장 사항

  • 트리거가 삭제되면 현재 데이터베이스에서 삭제됩니다. 테이블 및 테이블의 기반이 되는 데이터는 영향을 받지 않습니다. 테이블을 삭제하면 해당 테이블의 모든 트리거가 자동으로 삭제됩니다.

  • 트리거를 만들면 이 트리거는 기본적으로 활성화됩니다.

  • 트리거를 비활성화하면 트리거는 삭제되지 않고 현재 데이터베이스의 개체로 남아 있습니다. 그러나 트리거가 프로그래밍된 INSERT, UPDATE 또는 DELETE 문이 실행될 때는 트리거가 실행되지 않습니다. 트리거를 해제했다가 다시 설정할 수 있습니다. 트리거를 사용하도록 설정해도 트리거가 다시 생성되지 않습니다. 트리거는 원래 생성되었을 때와 동일한 방식으로 실행됩니다.

보안

사용 권한

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

DML 트리거를 사용하지 않도록 설정하거나 사용하도록 설정하려면 최소한 트리거가 만들어진 테이블 또는 뷰에 대한 ALTER 권한이 사용자에게 있어야 합니다.

SQL Server Management Studio 사용

DML 트리거를 삭제하려면 다음을 수행합니다.

  1. 개체 탐색기에서 데이터베이스 엔진 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. 원하는 데이터베이스를 확장하고 테이블을 확장한 다음 삭제할 트리거가 포함된 테이블을 확장합니다.

  3. 삭제할 트리거를 마우스 오른쪽 단추로 클릭한 다음 트리거를 확장하고 삭제를 클릭합니다.

  4. 개체 삭제 대화 상자에서 삭제할 트리거를 확인한 다음 확인을 클릭합니다.

DML 트리거를 사용하지 않도록 설정하고 사용하도록 설정하려면 다음을 수행합니다.

  1. 개체 탐색기에서 데이터베이스 엔진 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. 원하는 데이터베이스를 확장하고 테이블을 확장한 다음 사용하지 않도록 설정할 트리거가 포함된 테이블을 확장합니다.

  3. 트리거를 확장하고 사용하지 않도록 설정할 트리거를 마우스 오른쪽 단추로 클릭한 다음 사용 안 함을 클릭합니다.

  4. 트리거를 사용하도록 설정하려면 사용을 클릭합니다.

Transact-SQL 사용

DML 트리거를 삭제하려면 다음을 수행합니다.

  1. 데이터베이스 엔진에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예시를 복사하여 쿼리 창에 붙여넣습니다. CREATE TRIGGER 문을 실행하여 Sales.bonus_reminder 트리거를 생성합니다. 트리거를 삭제하려면 DROP TRIGGER 문을 실행합니다.

--Create the trigger.  
USE AdventureWorks2022;  
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 AdventureWorks2022;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

DML 트리거를 사용하지 않도록 설정하고 사용하도록 설정하려면 다음을 수행합니다.

  1. 데이터베이스 엔진에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예시를 복사하여 쿼리 창에 붙여넣습니다. CREATE TRIGGER 문을 실행하여 Sales.bonus_reminder 트리거를 생성합니다. 트리거를 사용하지 않거나 사용하도록 설정하려면 DISABLE TRIGGER 또는 ENABLE TRIGGER 문을 각각 실행합니다.

--Create the trigger.  
USE AdventureWorks2022;  
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 AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

참고 항목

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