트리거를 사용하거나 데이터베이스 구조를 수정하지 않고 테이블 변경 사항을 SQL Server 데이터베이스에서 어떻게 모니터링 할 수 있습니까? 내가 선호하는 프로그래밍 환경은 .NET 및 C #입니다.
모든 SQL Server 2000 SP4 이상 을 지원하고 싶습니다 . 내 응용 프로그램은 다른 회사 제품의 볼트 온 데이터 시각화입니다. 고객 기반은 수천 명이므로 모든 설치시 타사 공급 업체의 테이블을 수정해야하는 요구 사항을 적용하고 싶지 않습니다.
에 의해 "테이블로 변경" , 테이블 데이터에 대한 I 평균 변경 테이블 구조를 변경하지.
궁극적으로 변경 사항을 주기적으로 확인하지 않고 응용 프로그램에서 이벤트를 트리거하기 위해 변경 사항을 원합니다.
내 요구 사항 (트리거 또는 스키마 수정 없음, SQL Server 2000 및 2005)을 고려한 가장 좋은 방법 BINARY_CHECKSUM
은 T-SQL 에서 함수 를 사용하는 것 같습니다 . 구현하려는 방법은 다음과 같습니다.
X 초마다 다음 쿼리를 실행합니다.
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);
그리고 저장된 값과 비교하십시오. 값이 변경된 경우 쿼리를 사용하여 행 단위로 테이블을 진행하십시오.
SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);
그리고 반환 된 체크섬과 저장된 값을 비교합니다.