[ MS SQL.Trigger - 예제1 ]

 

1.

CREATE TRIGGER TRG_TBL_BL_DETAIL_INST ON TBL_BL_DETAIL

FOR INSERT AS

 

IF  NOT UPDATE(BL_QTY)   RETURN

 

DECLARE @tmp_qty    DECIMAL(10),

                   @tmp_num  DECIMAL(10)

 

SELECT @tmp_qty = 10;

 

SELECT @tmp_num = 20;

 

UPDATE TBL_OFFER_DETAIL

SET    ALL_BL_QTY = ALL_BL_QTY + I.BL_QTY + @tmp_qty + @tmp_num

FROM   TBL_OFFER_DETAIL A, INSERTED I

WHERE  A.OFFER_NO   = I.OFFER_NO

AND    A.CODE_ITEM    = I.CODE_ITEM

 

 

2.

CREATE TRIGGER TRG_TBL_BL_DETAIL_UPDT ON TBL_BL_DETAIL

FOR UPDATE AS

 

UPDATE TBL_OFFER_DETAIL

SET    ALL_BL_QTY = ALL_BL_QTY - D.BL_QTY + I.BL_QTY

FROM   TBL_OFFER_DETAIL A, INSERTED I,  DELETED D

WHERE  A.OFFER_NO   = I.OFFER_NO

AND    A.CODE_ITEM    = I.CODE_ITEM

AND    A.OFFER_NO      = D.OFFER_NO

AND    A.CODE_ITEM    = D.CODE_ITEM

 

 

정의 :

- DELETED 와 INSERTED 라는 가상테이블과 물리적으로 존재 하는 테이블

  간에 JOIN 으로 문장을 구성 할 수 있다.

 

-. IF NOT UPDATE(BL_QTY) RETURN : 이란 BL_QTY 수량이 변경이

   되지 않았을 경우에는 RETURN 해라는 뜻.

   즉, Trigger 를 더 이상 작동 하지 말라는 문장이다.

'(DB) MS SQL > Trigger' 카테고리의 다른 글

MS SQL.Trigger - 예제2  (0) 2017.01.27
MS SQL.Trigger - 종류  (0) 2017.01.27
MS SQL.Trigger - 특징  (0) 2017.01.27
MS SQL.Trigger - 해법  (0) 2017.01.27
MS SQL.Trigger - 문법  (0) 2017.01.27
Posted by 농부지기
,