MS-SQL 트리거 생성 신택스 II
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
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