트리거(Trigger)란?
특정 테이블에 INSERT, DELETE, UPDATE가 발생했을 때 다른 이벤트를 처리하도록 하기 위해서 데이터베이스에서 제공하는 기능입니다.
여기서 이벤트란 INSERT, DELETE, UPDATE등 모든 쿼리나 프로시저 등등의 작업을 말합니다.
다음은 Insert, Delete, Update중 Insert에 대한 예입니다.
우선 제일 먼저 테스트할 테이블을 만듭니다.
CREATE TABLE Member (
[No] int IDENTITY(1, 1) PRIMARY KEY,
Id varchar(15),
Phone varchar(10)
)
CREATE TABLE Address (
[No] int IDENTITY(1, 1) PRIMARY KEY,
Id varchar(15),
Phone varchar(10),
JoinDate DATETIME
)
이제 트리거를 만듭니다.
CREATE TRIGGER Member_Insert ON Member
FOR INSERT
AS
DECLARE @User_Id VARCHAR(15)
DECLARE @Phone VARCHAR(10)
SELECT @User_Id = Id, @Phone = Phone FROM INSERTED
INSERT INTO Address VALUES(@User_Id, @Phone, GETDATE())
Member_Insert라는 이름으로 Member 테이블에서 Insert 작업이 이루어 진 후에 한다는 뜻입니다.
@User_Id와 @Phone라는 변수를 선언했다고 보시면 됩니다.
INSERTED되었을 때, Address 테이블에 넣으라는 뜻힙니다.
그럼 이제 테스트를 해봅니다.
INSERT 명령을 한번만 했는데 또 다른 이벤트가 실행되었다고 합니다. 두번 째가 트리거가 실행 되었다는 표시입니다.
결과입니다.
출처 http://hansne.tistory.com/tag/MS-SQL
'DataBase > MS-SQL' 카테고리의 다른 글
[MS-SQL] 컬럼 데이터타입 변경 (0) | 2013.02.12 |
---|---|
NULL 값 모두를 변경할때 UPDATE [테이블] SET [COLUMN] = ISNULL([COLUMN], '변경값') (3) | 2013.01.24 |
테이블 만들기 - CREATE (1) | 2012.03.05 |