테이블 A라는 테이블이 있으며 INSERT, UPDATES, DELETES를 처리하는 트리거를 만들었습니다. 이제 다음 단계를 처리하기 위해 어떤 DML 작업이 수행되었는지 알고 싶습니다. 업데이트/삽입/삭제 여부를 어떻게 알 수 있습니까?업데이트/삽입/삭제가 테이블에서 발생했는지 확인하는 방법
의견, 의견을 보내 주시면 대단히 감사하겠습니다.
테이블 A라는 테이블이 있으며 INSERT, UPDATES, DELETES를 처리하는 트리거를 만들었습니다. 이제 다음 단계를 처리하기 위해 어떤 DML 작업이 수행되었는지 알고 싶습니다. 업데이트/삽입/삭제 여부를 어떻게 알 수 있습니까?업데이트/삽입/삭제가 테이블에서 발생했는지 확인하는 방법
의견, 의견을 보내 주시면 대단히 감사하겠습니다.
트리거 내부에는 INSERTED
및 DELETED
의 두 가지 특수 테이블이 있습니다. 행이 INSERTED
테이블에만 존재하는 경우 INSERT 조작이 발생했습니다. 마 y 가지로 행이 DELETED
테이블에만 존재하는 경우, DELETE 조작이 발생했습니다. 두 테이블에 행이 있으면 UPDATE가 발생하고 INSERTED
테이블은 새 값을 보유하고 DELETED
테이블은 이전 값을 보유합니다.
삽입 된 행 :
SELECT i.*
FROM INSERTED i
LEFT JOIN DELETED d
ON i.PrimaryKey = d.PrimaryKey
WHERE d.PrimaryKey IS NULL
삭제 된 행 :
SELECT d.*
FROM DELETED d
LEFT JOIN INSERTED i
ON d.PrimaryKey = i.PrimaryKey
WHERE i.PrimaryKey IS NULL
갱신 된 행 :
SELECT *
FROM INSERTED i
INNER JOIN DELETED d
ON i.PrimaryKey = d.PrimaryKey
아니면 가능한 솔루션의 모든 이벤트 – Magnus
에 대한 하나의 트리거를 만들 수 있습니다. 한 번에 모든 것을 할 수있는 곳이 있는지 궁금합니다. 가장 좋은 방법은 무엇입니까 ?? – SaiBand