CREATE TRIGGER [dbo].[TRG_AAA] on [dbo].[AAA]

AFTER INSERT

AS
BEGIN
   SET NOCOUNT ON
  
   DECLARE @V_A VARCHAR(10)

   SELECT @V_A = A FROM inserted
  
   IF (@V_A = 'A')
   BEGIN
      INSERT INTO BBB
      SELECT A, B FROM inserted
   END
  
  
   --IF @@RowCount > 0
   --BEGIN
   --   INSERT INTO BBB
   --   SELECT A, B FROM inserted
   --END
  
END

 

---------------------------------------------

 

INSERT INTO AAA (A, B) VALUES ('A', 0)

SELECT * FROM AAA
SELECT * FROM BBB

 

 

MSSQL 트리거도 오라클과 똑같을 줄 알았고 별 생각없이 인터넷상에 도는 트리거 예제를 긁어다가 적용했는데

왠걸 오늘 큰건 하나 저질렀다.

내용인 즉슨 바로 'AFTER INSERT' 이 옵션이었는데 오라클에서는 주로 내가 쓰던건 INSERTED(?) 였다. INSERT가 되고난 이후 처리되는 뭐 이 정도로 이해를 했다.

오늘 저지른 실수의 옵션은 바로 'INSTEAD OF INSERT' 이미 늦었지만 눈에 들어오기 시작한것은 INSTEAD OF... INSTEAD OF... INSTEAD OF...

대신에... 대신에... 대신에... INSERT 대신에... OTL

 

INSERT되지 않고 설정한 내용으로 처리가 되다보니 정작 본래 테이블에는 데이터를 하나도 안들어가는 불상사가 발생... 그것도 운영 DB로...

뭐 좋은 경험으로 삼고 다음에 조심해 나가면 되겠지...


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,