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 |
댓글