0

SQL Server 테이블에서 행이 업데이트 될 때마다 LastUpdatedOn datetime2 열을 업데이트하려고합니다. 이를 수행하기 위해 After Update 트리거를 사용하여 LastUpdatedOnsysutcdatetime()으로 설정하려고 생각했습니다. 이 트리거는 열 변경 사항을 감지하고 이전 값을 히스토리 테이블에 저장하는 역할을합니다. 내 질문은, 트리거 접근 방식은 행이 업데이트되는 시간의 정확한 표현을 저장합니까? 실제 업데이트와 After Update 트리거 업데이트 사이에 시간 지연이 있습니까? LastUpdatedOn?SQL Server의 LastUpdatedOn datetime2 열을 정확히 업데이트합니다.

또한 http://technet.microsoft.com/en-us/library/bb630387.aspx을 보면 GetSystemTimeAsFileTime()은 여러 서버에서 정확하지 않을 수 있습니다. 동시 기록이 많은 샤드 된 데이터베이스 아키텍처에서 이벤트 시간을 감지하는 가장 안정적인 방법은 무엇입니까? 전체 클러스터에서 이벤트의 순서가 정확하다는 것을 알고 있습니까?

P. Change Data Capture을 사용하려고 생각했지만 SQL Azure에서는 사용할 수 없습니다.

답변

0

트리거가 맨 끝에서 실행되므로 단일 명령문에서 갱신중인 행의 수와 로그를 취하는 방법에 따라 지연이 발생할 수 있습니다. 실제 업데이트 문 내에서 시간을 업데이트하는 것이 좋습니다.

또한 출력 절을 사용하여 데이터를 기록 테이블로 이동합니다.