비즈니스 규칙 내에서 행이 변경되는 것으로 지정되는 시점을 추적해야합니다. 테이블에는 비즈니스 목적에 따라 관련이없는 것으로 지정된 여러 열 (예 : 날짜 입력 필드, 타임 스탬프, 검토 된 비트 필드 또는 수신 된 비트 필드)이 포함되어 있습니다. 테이블에 많은 열이 있고 관련 필드가 변경되었는지 확인한 다음 감사 테이블에 항목을 기록하는 우아한 방법을 찾으려고합니다. 행의 PK 값을 입력하면 PK를 편집 할 수 없습니다. 어떤 컬럼이 실제로 변경되었는지는 알 필요가 없습니다 (길 아래에서 좋을지라도).특정 열의 변경 사항을 제외하고 행을 변경 한 것으로 식별하십시오.
내가 저장 프로 시저를 통해 달성 할 수 있어요,하지만 업데이트를 다음 구문을 사용 못생긴 SP (또는 문이 게시물에 대한 상당히 단축) :
INSERT INTO [TblSourceDataChange] (pkValue)
SELECT d.pkValue
FROM deleted d INNER JOIN inserted i ON d.pkValue=i.pkValue
WHERE ( i.[F440] <> d.[F440]
OR i.[F445] <> d.[F445]
OR i.[F450] <> d.[F450])
내가 찾을려고을 무시 필드와 저장 프로 시저를 지정할 수있는 일반적인 방법은 테이블에 관련 필드를 추가해도 작동합니다. 비 관련 필드는 자주 변경되지 않지만 관련 필드는 좀 더 동적 인 경향이 있습니다.
관련성 높은 이전 질문에 대한 새로운 답변을 추가했습니다. http://stackoverflow.com/questions/1254787/sql-server-update-trigger-get-only-modified-fields/8020461#8020461 –