728x90
MSSQL에는 테이블에 이벤트가 생겼을 경우 자동으로 데이터를 입력 또는 삭제해주는 트리거(Trigger)라는 기능이 있습니다. 오늘은 이 편리한 기능인 INSERTED 트리거에 대해서 알아보겠습니다.
테이블 생성
트리거 사용을 위해 테이블이 2개 생성합니다.
TRG : insert 사용으로 테이터 입력
TRG_IN : TRG 테이블에 데이터가 들어오면 자동으로 데이터 입력됨
create table TRG
(
name varchar(100)
)
create table TRG_IN
(
name varchar(100)
)
트리거 생성
TRG 라는 테이블의 name 칼럼에 이름 추가되면
TRG_IN 테이블의 name 컬럼에 이름+1이 추가되는 트리거를 생성합니다.
create trigger T_NAME_Insert on TRG -- create trigger [트리거명] on [트리거를 생성할 테이블] --
for insert --TRG 테이블에 데이터가 insert 되었을 경우
AS
declare @name varchar(100) --@name 변수선언
select @name = name FROM inserted -- insert한 데이터가 inserted 라는 임시테이블에 들어가고 그데이터를 @name에 넣는다
insert into TRG_IN values(@name+'1') --TRG_IN 테이블에 @name+'1' 값을 인설트 한다
테이블 INSERT
TRG 테이블에 'A'를 삽입합니다.
insert into TRG values ('A')
테이블 INSERT 결과
TRG 테이블에만 'A'를 입력하였지만 TRG 테이블에 생성한 T_NAME_Insert 트리거를 타고
TRG_IN 테이블에 'A1'이 자동으로 INSERT 되는 것을 볼 수 있습니다.
select * from TRG
select * from TRG_IN
다음은 트리거 활성화(enable) & 비활성화(disable) 하는 방법입니다. 참고하세요.
이상으로 트리거(Trigger) 생성 및 INSERTED 예제 포스팅을 마치겠습니다.
[참조글]
트리거 DELETE
트리거 UPDATE
트리거 활성화/비활성화
반응형
그리드형
'IT > MSSQL' 카테고리의 다른 글
[MSSQL] 트리거(Trigger) 생성 3가지 유형(UPDATE) (0) | 2021.03.25 |
---|---|
[MSSQL] 트리거(Trigger) 생성 3가지 유형(DELETE) (0) | 2021.03.25 |
[MSSQL] 트리거(Trigger) 활성화/비활성화 2가지 사용법 (0) | 2021.03.25 |
Unable to create an instance of the Java Virtual Machine Located at path (SQLDeveloper 오류) (0) | 2021.03.24 |
[MSSQL] 연결된서버 OraOLEDB.Oracle의 인스턴스를 만들 수 없습니다 (0) | 2021.03.23 |
댓글