DML 트리거 수정 또는 이름 바꾸기Modify or Rename DML Triggers

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 SQL Server 2017SQL Server 2017에서 DML 트리거를 수정하거나 이름을 바꾸는 방법에 대해 설명합니다. This topic describes how to modify or rename 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

제한 사항Limitations and Restrictions

  • 트리거의 이름을 바꿀 때 트리거가 현재 데이터베이스에 있어야 하고 새 이름이 식별자에 대한 규칙을 따라야 합니다.When you rename a trigger, the trigger must be in the current database, and the new name must follow the rules for identifiers.

권장 사항Recommendations

  • 트리거의 이름을 바꿀 때 sp_rename 저장 프로시저를 사용하지 않는 것이 좋습니다.We recommend you do not use the sp_rename stored procedure to rename a trigger. 개체 이름의 일부를 변경하면 스크립트나 저장 프로시저가 작동되지 않을 수 있습니다.Changing any part of an object name can break scripts and stored procedures. 트리거의 이름을 변경해도 sys.sql_modules 카탈로그 뷰의 definition 열에 있는 해당 개체 이름은 변경되지 않습니다.Renaming a trigger does not change the name of the corresponding object name in the definition column of the sys.sql_modules catalog view. 대신 트리거를 삭제하고 다시 만드는 것이 좋습니다.We recommend that you drop and and re-create the trigger instead.

  • DML 트리거가 참조하는 개체의 이름을 변경하면 트리거 텍스트에 새 개체 이름이 반영되도록 트리거를 수정해야 합니다.If you change the name of an object referenced by a DML trigger, you must modify the trigger so that its text reflects the new name. 따라서 개체 이름을 바꾸기 전에 먼저 개체의 종속성을 표시하여 영향을 받는 트리거가 있는지 확인해야 합니다.Therefore, before you rename an object, display the dependencies of the object first to determine whether any triggers are affected by the proposed change.

  • DML 트리거 정의를 암호화할 수도 있습니다.A DML trigger can also be modified to encrypt its definition.

  • 트리거의 종속성을 보려면 SQL Server Management StudioSQL Server Management Studio 또는 다음 함수와 카탈로그 뷰를 사용할 수 있습니다.To view the dependencies of a trigger, you can use SQL Server Management StudioSQL Server Management Studio or the following function and catalog views:

보안Security

사용 권한Permissions

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

SQL Server Management Studio 사용Using SQL Server Management Studio

DML 트리거를 수정하려면To modify 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 modify.

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

  4. 트리거를 수정한 다음 실행을 클릭합니다.Modify the trigger, and then click Execute.

DML 트리거의 이름을 바꾸려면To rename a DML trigger

  1. 이름을 바꿀트리거를 삭제합니다 .Delete the trigger that you want to rename.

  2. 새 이름을 지정하여트리거를 다시 만듭니다.Re-create the trigger, specifying the new name.

Transact-SQL 사용Using Transact-SQL

ALTER TRIGGER를 사용하여 트리거를 수정하려면To modify a trigger using ALTER 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. 첫 번째 예를 실행하여 사용자가 SalesPersonQuotaHistory 테이블에 데이터를 추가 또는 변경하려고 시도하면 클라이언트로 사용자 정의 메시지를 인쇄하는 DML 트리거를 만듭니다.Execute the first example to create a DML trigger that prints a user-defined message to the client when a user tries to add or change data in the SalesPersonQuotaHistory table. ALTER TRIGGER 문을 실행하여 INSERT 작업에 대해서만 발생하도록 트리거를 수정합니다.Execute the ALTER TRIGGER statement to modify the trigger to fire only on INSERT activities. 이 트리거는 테이블에 행을 삽입하거나 업데이트하는 사용자에게 Compensation 부서에도 해당 사실을 통지하도록 알려 줍니다.This trigger is helpful because it reminds the user that updates or inserts rows into this table to also notify the Compensation department.

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  
USE AdventureWorks2012;  
GO  
ALTER TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
AFTER INSERT  
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  

DROP TRIGGER 및 ALTER TRIGGER를 사용하여 트리거의 이름을 바꾸려면To rename a trigger using DROP TRIGGER and ALTER TRIGGER

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

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

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예에서는 DROP TRIGGERALTER TRIGGER 문을 사용하여 Sales.bonus_reminder 트리거의 이름을 Sales.bonus_reminder_2로 바꿉니다.This example use the DROP TRIGGER and ALTER TRIGGER statements to rename the Sales.bonus_reminder trigger to Sales.bonus_reminder_2.

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_2  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  

참고 항목See Also

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)
sp_rename(Transact-SQL) sp_rename (Transact-SQL)
ALTER TRIGGER(Transact-SQL) ALTER TRIGGER (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)