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
트리거 DELETE
트리거 활성화/비활성화
반응형
그리드형
'IT > MSSQL' 카테고리의 다른 글
[MSSQL] SELECT(테이블 조회,읽기) 권한만 부여하여 계정 생성 (0) | 2021.04.06 |
---|---|
[MSSQL] 복합 인덱스 성능 테스트 (0) | 2021.03.26 |
[MSSQL] 트리거(Trigger) 생성 3가지 유형(DELETE) (0) | 2021.03.25 |
[MSSQL] 트리거(Trigger) 생성 3가지 유형(inserted) (0) | 2021.03.25 |
[MSSQL] 트리거(Trigger) 활성화/비활성화 2가지 사용법 (0) | 2021.03.25 |
댓글