sys.fn_all_changes_<capture_instance>(Transact-SQL)
all changes 쿼리 함수의 래퍼입니다. 이러한 함수를 만드는 데 필요한 스크립트는 sys.sp_cdc_generate_wrapper_function 저장 프로시저에 의해 생성됩니다.
|
열 이름 |
열 유형 |
설명 |
|---|---|---|
|
__CDC_STARTLSN |
binary(10) |
변경 내용과 관련된 트랜잭션의 커밋 LSN입니다. 동일한 트랜잭션에서 커밋된 모든 변경 내용은 같은 커밋 LSN을 공유합니다. |
|
__CDC_SEQVAL |
binary(10) |
트랜잭션에서 행 변경 내용을 정렬하는 데 사용되는 시퀀스 값입니다. |
|
<@column_list의 열> |
varies |
래퍼 함수를 만드는 스크립트를 생성하기 위해 sp_cdc_generate_wrapper_function을 호출할 때 이 함수에 대한 column_list 인수에서 식별되는 열입니다. |
|
__CDC_OPERATION |
nvarchar(2) |
대상 환경에 행을 적용하는 데 필요한 작업을 나타내는 작업 코드입니다. 이 코드는 다음과 같이 호출에서 제공되는 인수 row_filter_option의 값에 따라 달라집니다. row_filter_option = 'all' 'D' - 삭제 작업 'I' - 삽입 작업 'UN' - 업데이트 작업 새 값 row_filter_option = 'all update old' 'D' - 삭제 작업 'I' - 삽입 작업 'UN' - 업데이트 작업 새 값 'UO' - 업데이트 작업 이전 값 |
|
<@update_flag_list의 열> |
bit |
_uflag를 열 이름에 추가하여 이름을 지정한 비트 플래그입니다. __CDC_OPERATION이 'D' , 'I' 또는 'UO'인 경우 이 플래그는 항상 NULL로 설정됩니다. __CDC_OPERATION이 'UN'인 경우에는 업데이트로 인해 해당 열이 변경되면 이 플래그가 1로 설정되고, 그렇지 않으면 0으로 설정됩니다. |
fn_all_changes_<capture_instance> 함수는 cdc.fn_cdc_get_all_changes_<capture_instance> 쿼리 함수의 래퍼 역할을 합니다. 래퍼를 만드는 스크립트를 생성하는 데에는 sys.sp_cdc_generate_wrapper 저장 프로시저가 사용됩니다.
래퍼 함수는 자동으로 만들어지지 않습니다. 래퍼 함수를 만들려면 다음 두 작업을 수행해야 합니다.
-
래퍼 생성 스크립트를 만드는 저장 프로시저를 실행합니다.
-
래퍼 함수를 실제로 만드는 스크립트를 실행합니다.
래퍼 함수를 사용하면 LSN 값 대신 datetime 값에 의해 제한되는 간격 내에서 발생한 변경 내용을 체계적으로 쿼리할 수 있습니다. 래퍼 함수는 제공된 datetime 값과 쿼리 함수에 대한 인수로서 내부적으로 필요한 LSN 값 간에 필요한 모든 변환을 수행합니다. 변경 데이터 스트림을 처리하기 위해 래퍼 함수가 직렬로 사용된 경우 특정 호출과 연결된 간격의 @end_time 값이 후속 호출과 연결된 간격의 @start_time 값으로 제공된다는 규칙을 준수하면 데이터가 손실되거나 반복되지 않습니다.
스크립트를 만들 때 @closed_high_end_point 매개 변수를 사용하면 지정된 쿼리 창에서 닫힌 상한이나 열린 상한을 지원하는 래퍼를 생성할 수 있습니다. 즉, 커밋 시간이 추출 간격의 상한과 같은 항목을 간격에 포함할지 여부를 결정할 수 있습니다. 기본적으로 상한이 포함됩니다.
all changes 래퍼 함수에서 반환되는 결과 집합은 변경 테이블의 __$start_lsn 및 __$seqval 열을 각각 __CDC_STARTLSN 열 및 __CDC_SEQVAL 열로 반환합니다. 이 열 뒤에는 래퍼가 생성되었을 때 @column_list 매개 변수에 나타난 추적된 열만 옵니다. @column_list가 NULL인 경우 추적된 모든 원본 열이 반환됩니다. 원본 열 뒤에는 작업을 식별하는 한 문자 또는 두 문자 열인 작업 열 __CDC_OPERATION이 옵니다.
그런 다음 @update_flag_list 매개 변수에 식별된 각 열에 대한 결과 집합에 비트 플래그가 추가됩니다. all changes 래퍼의 경우 __CDC_OPERATION이 'D', 'I' 또는 'UO'이면 비트 플래그가 항상 NULL이 됩니다. __CDC_OPERATION이 'UN'인 경우 플래그는 업데이트 작업 결과로 열이 변경되었는지 여부에 따라 1 또는 0입니다.
변경 데이터 캡처 구성 템플릿 'Instantiate CDC Wrapper TVFs for Schema'에서는 sp_cdc_generate_wrapper_function 저장 프로시저를 사용하여 스키마에 정의된 쿼리 함수의 모든 래퍼 함수에 대한 CREATE 스크립트를 가져오는 방법을 보여 줍니다. 그런 다음 이 템플릿에서는 이러한 스크립트를 만듭니다. 템플릿에 대한 자세한 내용은 SQL Server Management Studio 템플릿 사용을 참조하십시오.
