What
SQL 서버 혹은 데이타베이스안에 어떤 이벤트가 발생했을 대, 일련의 SQL 문장들을 실행하게 하는 것이 트리거이다. 트리거에는 SQL 서버 로그인시에 실행하는 LOGON TRIGGER, 특정 데이타베이스 안의 DDL 이벤트 (예를 들어, CREATE TABLE 등)에 반응하는 DDL 트리거, 그리고 테이블이나 뷰의 SELECT, UPDATE, DELETE, INSERT 등에 반응하는 DML 트리거 등이 있다.
When
보통 데이터의 입력,수정,삭제등의 이벤트에 따른 로그기록(언제 지워졌고, 지워진 데이터가 무엇인지를)을 로그 테이블에 기록하거나 특정테이블에 데이터 변화가 감지되면 다른테이블의 데이터도 조작을 해야하는 경우, 그리고 데이터가 테이블에 기록되기전에 데이터 무결성 체크와 유효성 체크등이 필요한 경우에 사용될 수 있다.
How
(1)트리거 생성 문법
CREATE TRIGGER 트리거명 ON 테이블명 [for / after / instead of] [insert / update / delete] AS SQL 문;
-- for 는 before와 같은 것임
-- ON 테이블에 의해 테이블에 내용이 추가 / 삭제되면 inserted 또는 deleted 라는 가상 테이블에 자동으로 추가되고 이를 이용하여 트리거를 수행시키게 됨.
(2)DDL 트리거
CREATE TRIGGER 트리거명 ON DATABASE {FOR|AFTER} {DROP_TABLE|CREATE_TABLE|ALTER_TABLE} AS SQL 문;
create / alter / drop 과 같은 DDL문이 발생시 구동되는 트리거, DML트리거와 유사함, 정의시 ON 테이블명 대신 ON DATABASE 를 사용함.(INSTEAD OF 트리거는 지원안함)
트리거의 변경과 삭제
DROP TRIGGER 트리거명;
ALTER TRIGGER 트리거명;
What SQL 서버 혹은 데이타베이스안에 어떤 이벤트가 발생했을 대, 일련의 SQL 문장들을 실행하게 하는 것이 트리거이다. 트리거에는 SQL 서버 로그인시에 실행하는 LOGON TRIGGER, 특정 데이타베이스 안의 DDL 이벤트 (예를 들어, CREATE TABLE 등)에 반응하는 DDL 트리거, 그리고 테이블이나 뷰의 SELECT, UPDATE, DELETE, INSERT 등에 반응하는 DML 트리거 등이 있다.
When 보통 데이터의 입력,수정,삭제등의 이벤트에 따른 로그기록(언제 지워졌고, 지워진 데이터가 무엇인지를)을 로그 테이블에 기록하거나 특정테이블에 데이터 변화가 감지되면 다른테이블의 데이터도 조작을 해야하는 경우, 그리고 데이터가 테이블에 기록되기전에 데이터 무결성 체크와 유효성 체크등이 필요한 경우에 사용될 수 있다.
How (1)트리거 생성 문법 CREATE TRIGGER 트리거명 ON 테이블명 [for / after / instead of] [insert / update / delete] AS SQL 문; -- for 는 before와 같은 것임 -- ON 테이블에 의해 테이블에 내용이 추가 / 삭제되면 inserted 또는 deleted 라는 가상 테이블에 자동으로 추가되고 이를 이용하여 트리거를 수행시키게 됨.
(2)DDL 트리거 CREATE TRIGGER 트리거명 ON DATABASE {FOR|AFTER} {DROP_TABLE|CREATE_TABLE|ALTER_TABLE} AS SQL 문; create / alter / drop 과 같은 DDL문이 발생시 구동되는 트리거, DML트리거와 유사함, 정의시 ON 테이블명 대신 ON DATABASE 를 사용함.(INSTEAD OF 트리거는 지원안함)
트리거의 변경과 삭제 DROP TRIGGER 트리거명; ALTER TRIGGER 트리거명;