백엔드/SQL
[SQL] Trigger (2)
leejiwoo21
2021. 12. 13. 06:36
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
사용
반응형