-- ND_DT 를 테이블의 KEY 로 가정하고 만들었습니다.
-- 여러 ROW 를 한꺼번에 업데이트 할수도 있기 때문에 트리거 안에서 커서를 돌렸습니다.

 

CREATE TRIGGER tr_Save_Data_Temp 
ON dbo.Save_Data_Temp 


FOR UPDATE,INSERT
AS         SET 
NOCOUNT ON
DECLARE 
@ND_DT VARCHAR(20
BEGIN        DECLARE trigger_cur CURSOR        FOR SELECT ND_DT FROM inserted
       
OPEN trigger_cur                FETCH NEXT FROM trigger_cur INTO @ND_DT 

         
WHILE (@@FETCH_STATUS=0)
         
BEGIN 

               
-- Save_Data 에 데이터가 있을시 삭제
               
IF EXISTS     (    SELECT 'TRUE'   FROM  Save_Data WHERE ND_DT =@ND_DT     )
               
BEGIN
                       DELETE 
Save_Data WHERE ND_DT =@ND_DT
               
END                     

               
-- 데이터 입력
               
INSERT INTO Save_Data 
               
SELECT FROM Save_Data_Temp WHERE  ND_DT =@ND_DT

               -- 데이터 삭제
DELETE FROM Save_Data_Temp WHERE  ND_DT =@ND_DT                        FETCH NEXT FROM trigger_cur INTO @ND_DT 
         
END

   CLOSE 
trigger_cur
         
DEALLOCATE trigger_cur
END
 
 

+ Recent posts