응용 프로그램 코드에서 "start_lsn"값을 가져 오는 방법
-
13-12-2019 - |
문제
데이터베이스는 " 데이터 캡처 "메커니즘을 통해 모든 변경 사항을 추적합니다.이러한 변경을하는 사용자에 대한 추가 정보를 추가해야합니다. 다음 사용자는 SQL Server 사용자가 아닙니다.보안 권한 부여는 외부 메커니즘을 통해 수행됩니다.
" start_lsn "및 " userid "열이있는 도우미 테이블을 추가하여 공인 된 사용자와 트랜잭션을 연결합니다. 응용 프로그램 코드에서 실행 된 현재 트랜잭션에 해당하는 " start_lsn "값을 결정하는 방법이 있습니까?
해결책
현재 다음 해결책을 찾았습니다.
1)
-
id " 및 userid" " userid" userivity")을 만듭니다. > 열;
-
"ID"열을 기본 키로 사용합니다.
-
이 테이블의 CDC 옵션을 활성화합니다.
2)
-
모든 데이터 수정 작업을 트랜잭션 범위 ;
랩
-
특정 트랜잭션 중에 현재 userid "의"
을 사용 하여이 테이블에 새 데이터 레코드를 추가합니다.-
시작 독점 트랜잭션;
-
-
"데이터 조작";
-
userid " userActivity" 테이블에
에 대한 정보를 삽입하십시오.
트랜잭션이 독점이고 모든 작업이 단일 트랜잭션 범위 내에서 이루어 졌기 때문에 ( "start_lsn") 값은 동일합니다. 가입 연산자를 사용하여 데이터 조작 정보로 useractity " 테이블에서 데이터를 병합하십시오.
제휴하지 않습니다 StackOverflow