본문 바로가기
IT/MSSQL

[MSSQL] 트리거(Trigger) 생성 3가지 유형(UPDATE)

by 베베야 2021. 3. 25.
728x90

MSSQL에는 테이블에 이벤트가 생겼을 경우 자동으로 데이터를 입력 또는 삭제해주는 트리거(Trigger)라는 기능이 있습니다. 오늘은 이 편리한 기능인 트리거 UPDATE 기능에 대해서 알아보겠습니다.

 

 

테이블 생성

트리거 사용을 위해 테이블이 2개 생성합니다.
TRG : UPDATE 사용으로 테이터 갱신
TRG_DEL : TRG 테이블에 UPDATE 되면 자동으로 데이터 업데이트됨

create table TRG
(
name varchar(100)
)

create table TRG_UDT
(
name varchar(100)
)

 

트리거 생성

TRG 라는 테이블의 name 칼럼에 이름 업데이트되면
TRG_UDT 테이블의 name 컬럼에 이름이 업데이트한 문자로 변경되는 트리거를 생성합니다.
(UPDATE의 경우 INSERTED,DELETED 2개의 임시 테이블을 사용합니다.)

CREATE trigger T_NAME_UPDATE on TRG -- create trigger [트리거명] on [트리거를 생성할 테이블] -- 
for UPDATE --TRG 테이블에 UPDATE 명령어가 실행되었을 경우
AS 

declare @name varchar(20) --@name 변수 선언

select @name=name from INSERTED -- 업데이트한 데이터가 INSERTED 임시 테이블에 들어가고 그 데이터를 @name에 넣는다
UPDATE TRG_UDT set name = @name -- TRG_UDT 테이블에 name 컬럼의 모든 값을 @name 으로 업데이트한다.
select * from INSERTED --UPDATED 임시테이블의 내용을 보여준다

 

 

테이블 UPDATE

--TRG와 TRG_UDT 테이블에 각각 'A'를 삽입합니다.
insert into TRG values ('A')
insert into TRG_UDT values ('A')

--TRG 테이블의 nane 컬럼의 데이터를 B로 변경합니다.
UPDATE TRG set name='B'

 

테이블 UPDATE 결과

TRG 테이블에 UPDATE 명령어를 사용하여 'A'를 'B'로 변경하면 TRG 테이블에 생성한 T_NAME_UPDATE 트리거를 타고
TRG_UDT 테이블에 'A'가 'B'로 업데이트 되는것을 볼 수 있습니다.

select * from TRG
select * from TRG_UDT

(좌) 업데이트 전 / (우) 업데이트 후



이상으로 트리거(Trigger) 생성 및 UPDATE 예제 포스팅을 마치겠습니다.

 

[참조글]

트리거 INSERT

bebeya.tistory.com/entry/MSSQL-트리거Trigger-생성-3가지-유형inserted

 

[MSSQL] 트리거(Trigger) 생성 3가지 유형(inserted)

MSSQL에는 테이블에 이벤트가 생겼을 경우 자동으로 데이터를 입력 또는 삭제해주는 트리거(Trigger)라는 기능이 있습니다. 오늘은 이 편리한 기능인 INSERTED 트리거에 대해서 알아보겠습니다. 테이

bebeya.tistory.com

 

트리거 DELETE

 

[MSSQL] 트리거(Trigger) 생성 3가지 유형(DELETE)

MSSQL에는 테이블에 이벤트가 생겼을 경우 자동으로 데이터를 입력 또는 삭제 해주는 트리거(Trigger)라는 기능이 있습니다. 오늘은 이 편리한 기능인 트리거 Delete 기능에 대해서 알아보겠습

bebeya.tistory.com

 

트리거 활성화/비활성화

 

[MSSQL] 트리거(Trigger) 활성화/비활성화 2가지 사용법

트리거는 특정한 동작에 반응해 자동으로 필요한 동작을 실행하는 기능을 합니다. 오늘은 MSSQL에 트리거의 기능을 활성화(enable) / 비활성화(disable) 하는 방법에 대해서 알아보겠습니다. 마우스로

bebeya.tistory.com

반응형
그리드형

댓글