본문 바로가기
백엔드/SQL

[SQL] Trigger (2)

by leejiwoo21 2021. 12. 13.

Trigger (2)

 

DML Triggers

- DML이벤트가 발생 시 자동적으로 작동하는 stored procedure이다.

- DML 작동 이벤트에는 INSERT, UPDATE, DELETE문이 있다.

- 데이터 무결성 강화, 다른 테이블 사용, 복잡한 SQL문을 포함시키기 위해 사용된다.

- 필요 시 DML 하나의 transaction으로서 roll back할 수 있다.

- 서버 오류가 감지되면 자동적으로 모든 transaction이 roll back된다. > 실행 취소된다.

- 개체 무결성이나 도메인 무결성을 강화하는 제약조건과 비슷하다.

- 제약조건이 어플리케이션의 함수적인 기능을 모두 충족시키지 못했을 때 가장 효과적이다.

 

DML Trigger의 사용

- 참조 무결성 강화

- CHECK 제약조건과 비슷한 기능을 한다. 제약조건과는 다르게 테이블, 데이터베이스, 서버에서 모두 작동한다.

- 사용자가 직접 해야 하는 행동을 대신하게 만들 수 있다.

 

 

DML Trigger의 타입

 

1. AFTER trigger > INSERT, UPDATE, MERGE, DELETE문이 실행된 후에 트리거가 작동한다.

2. INSTEAD of trigger > 에러나 값 검사 같은 것을 위해 DML문 실행 이전에 작동한다.

3. CLR trigger

 

 

DML Trigger 문법

create[or alter] trigger [스키마이름]트리거 이름
on {table}
[with < dm_trigger_option][...]
{for| AFTER}
{[INSERT[...]], [UPDARTE][,][DELETE]
AS_Trigger[;]

 

예시)

use DreamHome
go

create trigger myTrigger
on Branch
after insert, update, delete  -- event (insert, delete, update 발생 후 작동)
as
begin
	print ' There is a change in Branch table '	
end

사용

 

 

'백엔드 > SQL' 카테고리의 다른 글

[SQL] Trigger (4)  (0) 2021.12.13
[SQL] Trigger (3)  (0) 2021.12.13
[SQL] Trigger (1)  (0) 2021.12.13
[SQL] N' '  (0) 2021.12.04
[SQL] Stored procedure (2)  (0) 2021.12.04

댓글