홈 · 개발 참고자료

개발 참고자료

MS-SQL 트리거 생성 신택스 II

작성자
바람돌이
작성일
2019-09-26
조회
6267
분류
기타 DBMS
CREATE TRIGGER [dbo].[T_CUST_MSTR_TR01] ON [dbo].[T_CUST_MSTR]
AFTER UPDATE
AS
BEGIN
DECLARE @CNT NUMERIC
DECLARE @CUCODE NUMERIC
DECLARE @MUPLog VARCHAR(50)
DECLARE @OLDCUSDNAME VARCHAR(50), @NEWCUSDNAME VARCHAR(50)
DECLARE @OLDCUNAME VARCHAR(50), @NEWCUNAME VARCHAR(50)
DECLARE @OLDTELNO VARCHAR(50), @NEWTELNO VARCHAR(50)
DECLARE @OLDTELNO1 VARCHAR(70), @NEWTELNO1 VARCHAR(70)
DECLARE @OLDHIS_CUSTNO VARCHAR(20), @NEWHIS_CUSTNO VARCHAR(20)
DECLARE @OLDCUST_GB1 VARCHAR(2), @NEWCUST_GB1 VARCHAR(2)
DECLARE @OLDDIST_YN VARCHAR(1), @NEWDIST_YN VARCHAR(1)
DECLARE @OLDCOW_CNT NUMERIC, @NEWCOW_CNT NUMERIC
DECLARE @OLDCOW_CNT_15M NUMERIC, @NEWCOW_CNT_15M NUMERIC


DECLARE @OLDSHOP_CD VARCHAR(3), @NEWSHOP_CD VARCHAR(3)
DECLARE @OLDLOGINOPT VARCHAR(1), @NEWLOGINOPT VARCHAR(1)
DECLARE @OLDUSE_YN VARCHAR(1), @NEWUSE_YN VARCHAR(1)


BEGIN
DECLARE UPDATE_CURSOR CURSOR FOR
SELECT CUCODE,
CUNAME,
CUSDNAME
FROM DELETED
OPEN UPDATE_CURSOR
FETCH NEXT
FROM UPDATE_CURSOR
INTO @CUCODE,
@OLDCUNAME,
@OLDCUSDNAME
WHILE @@FETCH_STATUS = 0 BEGIN
-- 구현로직 입력
SELECT @NEWCUNAME = CUNAME,
@NEWCUSDNAME = CUSDNAME
FROM INSERTED

IF @NEWCUNAME <> @OLDCUNAME
BEGIN
INSERT INTO T_HISTORY ( TAB_NM, COL_NM, OLD_DATA, NEW_DATA, INP_DT, PKEY )
VALUES ( 'T_CUST_MSTR',
'CUNAME',
@OLDCUNAME,
@NEWCUNAME,
GETDATE(),
@CUCODE )
END

IF @NEWCUSDNAME <> @OLDCUSDNAME
BEGIN
INSERT INTO T_HISTORY ( TAB_NM, COL_NM, OLD_DATA, NEW_DATA, INP_DT, PKEY )
VALUES ( 'T_CUST_MSTR',
'CUSDNAME',
@OLDCUSDNAME,
@NEWCUSDNAME,
GETDATE(),
@CUCODE )
END



FETCH NEXT FROM UPDATE_CURSOR
INTO @CUCODE,
@OLDCUNAME,
@OLDCUSDNAME
END

CLOSE UPDATE_CURSOR;
DEALLOCATE UPDATE_CURSOR;
END




END
GO