Q&A

  • (질문) MS SQL 트리거에서.. help me
트리거에서 update는 어케하는지 아시는분 갈켜주시면 감사..

일반 테이블에서 레코드가 있고..( insert/ delete 는 이해가 되는데..)

기존 레코드의 값이 변경 되었을때 기존의 값과 새로 변경 된 값이 트리거로

반영이 되어야 할텐데..

읽어주셔서 대단히 감사합니다..

아시는분 꼭좀 부탁합니다..

1  COMMENTS
  • Profile
    까마귀 2001.03.21 21:05
    초보 wrote:

    > 트리거에서 update는 어케하는지 아시는분 갈켜주시면 감사..

    > 일반 테이블에서 레코드가 있고..( insert/ delete 는 이해가 되는데..)

    > 기존 레코드의 값이 변경 되었을때 기존의 값과 새로 변경 된 값이 트리거로

    > 반영이 되어야 할텐데..

    > 읽어주셔서 대단히 감사합니다..

    > 아시는분 꼭좀 부탁합니다..



    안녕하세요. 까마귀입니다.



    트리거를 쓰신다니 일반적으로 Insert/Update/Delete는 하실줄 아시지요?

    트리거에서도 똑같이 쓰시면 됩니다.

    문제는 데이터가 존재하는지 아닌지 파악만 하면 되는거죠?

    이렇게 하세요.



    If Exists

    ( Select T.Key필드 Form 테이블 T Inner Join Inserted I

    On T.Key필드 = I.Key필드 )

    begin

    Update 구문....

    end



    먼저 If Exists를 사용해서 레코드가 있는지 검사하고 있느면 Update하면 됩니다.

    위에서 Inserted는 방금 저장된 하나의 레코드를 말합니다.



    근데요, 트리거는 엄청 느리거든요.

    그래서, 크리거는 않 쓸수록 좋은데요.

    트리거로 할 수 있는것은 전부 View나 Procedure로 할 수가 있습니다.

    그런쪽으로 돌리세요.







    위대한 단군혼이 살아있는 나라.... 대한민국.