AFTER 트리거 (DML)

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

Florin Angelescu

Instructor

정의와 속성

  • 발생 시 정해진 작업을 수행
  • DML 이벤트 완료 후에만 실행
  • 테이블/뷰의 INSERT, UPDATE, DELETE와 함께 사용
SQL Server에서 트리거 구축 및 최적화

AFTER 트리거 전제 조건

  • DML 문이 적용될 테이블 또는 뷰 필요
  • 트리거는 같은 테이블에 연결됨

이 예제에 사용된 Products 테이블의 출력:

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
SQL Server에서 트리거 구축 및 최적화

AFTER 트리거 전제 조건

  • 대상 테이블
  • 트리거 설명
  • 트리거 발생 이벤트(DML)
  • 트리거 이름
  • Products
  • 삭제된 상품 정보를 이력 테이블에 저장
  • DELETE
  • TrackRetiredProducts
SQL Server에서 트리거 구축 및 최적화

AFTER 트리거 전제 조건 요약

Products 테이블에서 행이 삭제되면...

해당 행의 필요한 정보를 RetiredProducts 테이블에 저장합니다.

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
SQL Server에서 트리거 구축 및 최적화

AFTER 트리거 정의

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
SQL Server에서 트리거 구축 및 최적화

"inserted" 및 "deleted" 테이블

  • DML 트리거에서 사용하는 특수 테이블
  • SQL Server가 자동 생성
SQL Server에서 트리거 구축 및 최적화

"inserted" 및 "deleted" 테이블

  • DML 트리거에서 사용하는 특수 테이블
  • SQL Server가 자동 생성
특수 테이블 INSERT UPDATE DELETE
inserted 새 행 새 행 해당 없음
deleted 해당 없음 변경된 행 삭제된 행
SQL Server에서 트리거 구축 및 최적화

완성된 AFTER 트리거

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
SQL Server에서 트리거 구축 및 최적화

연습해 봅시다!

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

Preparing Video For Download...