DML 트리거 수정 또는 이름 바꾸기

이 항목에서는 SQL Server 2012에서 SQL Server Management Studio 또는 Transact-SQL을 사용하여 DML 트리거를 수정하거나 이름을 바꾸는 방법에 대해 설명합니다.

항목 내용

  • 시작하기 전에:

    제한 사항

    권장 사항

    보안

  • DML 트리거를 수정하거나 이름을 바꾸려면:

    SQL Server Management Studio

    Transact-SQL

시작하기 전에

제한 사항

  • 트리거의 이름을 바꿀 때 트리거가 현재 데이터베이스에 있어야 하고 새 이름이 식별자에 대한 규칙을 따라야 합니다.

권장 사항

  • 트리거의 이름을 바꿀 때 sp_rename 저장 프로시저를 사용하지 않는 것이 좋습니다. 개체 이름의 일부를 변경하면 스크립트나 저장 프로시저가 작동되지 않을 수 있습니다. 트리거의 이름을 변경해도 sys.sql_modules 카탈로그 뷰의 definition 열에 있는 해당 개체 이름은 변경되지 않습니다. 대신 트리거를 삭제하고 다시 만드는 것이 좋습니다.

  • DML 트리거가 참조하는 개체의 이름을 변경하면 트리거 텍스트에 새 개체 이름이 반영되도록 트리거를 수정해야 합니다. 따라서 개체 이름을 바꾸기 전에 먼저 개체의 종속성을 표시하여 영향을 받는 트리거가 있는지 확인해야 합니다.

  • DML 트리거 정의를 암호화할 수도 있습니다.

  • 트리거의 종속성을 보려면 SQL Server Management Studio 또는 다음 함수와 카탈로그 뷰를 사용할 수 있습니다.

보안

사용 권한

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

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

SQL Server Management Studio 사용

DML 트리거를 수정하려면

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

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

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

  4. 트리거를 수정한 다음 실행을 클릭합니다.

DML 트리거의 이름을 바꾸려면

  1. 이름을 바꿀 트리거를 삭제합니다.

  2. 새 이름을 지정하여 트리거를 다시 만듭니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

Transact-SQL 사용

ALTER TRIGGER를 사용하여 트리거를 수정하려면

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

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

  3. 다음 예를 복사하여 쿼리에 붙여 넣습니다. 첫 번째 예를 실행하여 사용자가 SalesPersonQuotaHistory 테이블에 데이터를 추가 또는 변경하려고 시도하면 클라이언트로 사용자 정의 메시지를 인쇄하는 DML 트리거를 만듭니다. ALTER TRIGGER 문을 실행하여 INSERT 작업에 대해서만 발생하도록 트리거를 수정합니다. 이 트리거는 테이블에 행을 삽입하거나 업데이트하는 사용자에게 Compensation 부서에도 해당 사실을 통지하도록 알려 줍니다.

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를 사용하여 트리거의 이름을 바꾸려면

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

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

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다. 이 예에서는 DROP TRIGGERALTER TRIGGER 문을 사용하여 Sales.bonus_reminder 트리거의 이름을 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

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

참고 항목

참조

CREATE TRIGGER(Transact-SQL)

DROP TRIGGER(Transact-SQL)

ENABLE TRIGGER(Transact-SQL)

DISABLE TRIGGER(Transact-SQL)

EVENTDATA(Transact-SQL)

sp_rename(Transact-SQL)

ALTER TRIGGER(Transact-SQL)

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)

개념

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