이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

sys.fn_all_changes_<capture_instance>(Transact-SQL)

all changes 쿼리 함수의 래퍼입니다. 이러한 함수를 만드는 데 필요한 스크립트는 sys.sp_cdc_generate_wrapper_function 저장 프로시저에 의해 생성됩니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙


fn_all_changes_<capture_instance> ('start_time' ,'end_time', '<row_filter_option>' )

<capture_instance> ::= The name of the capture instance.
<row_filter_option> ::=
{ all
  | all update old
}
start_time

결과 집합에 포함할 변경 테이블 항목 범위의 하위 끝점을 나타내는 datetime 값입니다.

연결된 커밋 시간이 start_time 이후인 cdc.<capture_instance>_CT 변경 테이블의 행만 결과 집합에 포함됩니다.

이 인수에 값 NULL을 제공하면 쿼리 범위의 하위 끝점이 캡처 인스턴스에 대해 유효한 범위의 하위 끝점에 대응됩니다.

end_time

결과 집합에 포함할 변경 테이블 항목 범위의 상위 끝점을 나타내는 datetime 값입니다.

래퍼 함수를 만드는 작성 스크립트를 생성하기 위해 sys.sp_cdc_generate_wrapper_function을 호출할 때 @closed_high_end_point에 대해 선택한 값에 따라 이 매개 변수는 다음 두 가지 의미 중 하나를 나타낼 수 있습니다.

  • @closed_high_end_point = 1

    연결된 커밋 시간이 end_time과 같거나 이전인 cdc.<capture_instance>_CT 변경 테이블의 행만 결과 집합에 포함됩니다.

  • @closed_high_end_point = 0

    연결된 커밋 시간이 end_time 이전인 cdc.capture_instance_CT 변경 테이블의 행만 결과 집합에 포함됩니다.

이 인수에 값 NULL을 제공하면 쿼리 범위의 상위 끝점이 캡처 인스턴스에 대해 유효한 범위의 상위 끝점에 대응됩니다.

<row_filter_option> ::= { all | all update old }

결과 집합에 반환되는 메타데이터 열 및 행의 내용을 제어하는 옵션입니다.

다음 옵션 중 하나를 사용할 수 있습니다.

all

지정된 LSN 범위 내의 모든 변경을 반환합니다. 업데이트 작업으로 인해 발생하는 변경 내용의 경우 이 옵션을 사용하면 업데이트가 적용된 후의 새 값을 포함하는 행만 반환됩니다.

all update old

지정된 LSN 범위 내의 모든 변경 내용을 반환합니다. 업데이트 작업으로 인해 발생하는 변경 내용의 경우 이 옵션을 사용하면 업데이트 전후의 열 값을 포함하는 두 개의 행이 반환됩니다.

열 이름

열 유형

설명

__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 저장 프로시저가 사용됩니다.

래퍼 함수는 자동으로 만들어지지 않습니다. 래퍼 함수를 만들려면 다음 두 작업을 수행해야 합니다.

  1. 래퍼 생성 스크립트를 만드는 저장 프로시저를 실행합니다.

  2. 래퍼 함수를 실제로 만드는 스크립트를 실행합니다.

래퍼 함수를 사용하면 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 템플릿 사용을 참조하십시오.

이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
© 2013 Microsoft. All rights reserved.