소개

SQL Server에서 트리거 구축 및 최적화

Florin Angelescu

Instructor

트리거란?

  • 저장 프로시저의 특수 유형
  • 데이터베이스 서버에서 이벤트 발생 시 실행

트리거 동작 방식

SQL Server에서 트리거 구축 및 최적화

트리거 유형(T-SQL 명령 기준)

  • DML(Data Manipulation Language) 트리거
    • INSERT, UPDATE, DELETE
  • DDL(Data Definition Language) 트리거
    • CREATE, ALTER, DROP
  • 로그인 트리거
    • LOGON 이벤트
SQL Server에서 트리거 구축 및 최적화

트리거 유형(동작 기준)

  • AFTER 트리거

    • 원본 문이 실행됨
    • 추가 문이 트리거됨
  • 활용 예

    • 대량 삽입 후 인덱스 재구성
    • 데이터 업데이트 시 관리자 알림
SQL Server에서 트리거 구축 및 최적화

트리거 유형(동작 기준)

  • INSTEAD OF 트리거

    • 원본 문 실행이 차단됨
    • 대신 대체 문이 실행됨
  • 활용 예

    • 삽입 방지
    • 업데이트 방지
    • 삭제 방지
    • 개체 변경 방지
    • 관리자 알림
SQL Server에서 트리거 구축 및 최적화

트리거 정의( AFTER)

-- Create the trigger by giving it a descriptive name
CREATE TRIGGER ProductsTrigger

-- The trigger needs to be attached to a table ON Products
-- The trigger behavior type AFTER INSERT
-- The beginning of the trigger workflow AS
-- The action executed by the trigger PRINT ('An insert of data was made in the Products table.');
SQL Server에서 트리거 구축 및 최적화

트리거 정의( INSTEAD OF)

-- Create the trigger by giving it a descriptive name
CREATE TRIGGER PreventDeleteFromOrders
-- The trigger needs to be attached to a table
ON Orders
-- The trigger behavior type
INSTEAD OF DELETE
-- The beginning of the trigger workflow
AS
-- The action executed by the trigger
PRINT ('You are not allowed to delete rows from the Orders table.');
SQL Server에서 트리거 구축 및 최적화

AFTER vs. INSTEAD OF

CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Triggered after 
-- the firing event (UPDATE)
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Triggered instead of 
-- the firing event (UPDATE)
INSTEAD OF UPDATE
AS
{trigger_actions_section};
SQL Server에서 트리거 구축 및 최적화

연습해 봅시다!

SQL Server에서 트리거 구축 및 최적화

Preparing Video For Download...