sys.sp_cdc_get_captured_columns(Transact-SQL)
적용 대상: SQL Server
지정된 캡처 인스턴스에서 추적한 캡처된 원본 열에 대한 변경 데이터 캡처 메타데이터 정보를 반환합니다. 변경 데이터 캡처는 SQL Server의 모든 버전에서 사용할 수 없습니다. SQL Server 버전에서 지원되는 기능 목록은 SQL Server 2022의 버전과 지원하는 기능을 참조하세요.
구문
sys.sp_cdc_get_captured_columns
[ @capture_instance = ] 'capture_instance'
[ ; ]
인수
[ @capture_instance = ] 'capture_instance'
원본 테이블과 연결된 캡처 인스턴스의 이름입니다. @capture_instance sysname이며 될 수 없습니다NULL
.
테이블에 대한 캡처 인스턴스를 보고하려면 sys.sp_cdc_help_change_data_capture 저장 프로시저를 실행합니다.
반환 코드 값
0
(성공) 또는 1
(실패).
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
source_schema |
sysname | 원본 테이블 스키마의 이름입니다. |
source_table |
sysname | 원본 테이블의 이름입니다. |
capture_instance |
sysname | 캡처 인스턴스의 이름입니다. |
column_name |
sysname | 캡처된 원본 열의 이름입니다. |
column_id |
int | 원본 테이블에 있는 열의 ID입니다. |
column_ordinal |
int | 원본 테이블 내의 열 위치입니다. |
data_type |
sysname | 열 데이터 형식입니다. |
character_maximum_length |
int | 문자 기반 열의 최대 문자 길이 그렇지 않으면 . NULL |
numeric_precision |
tinyint | 숫자 기반인 경우 열의 전체 자릿수입니다. 그렇지 않으면 . NULL |
numeric_precision_radix |
smallint | 숫자 기반인 경우 열의 전체 자릿수 반경입니다. 그렇지 않으면 . NULL |
numeric_scale |
int | 숫자 기반인 경우 열의 배율입니다. 그렇지 않으면 . NULL |
datetime_precision |
smallint | datetime 기반인 경우 열의 전체 자릿수입니다. 그렇지 않으면 . NULL |
설명
캡처 인스턴스 쿼리 함수 cdc.fn_cdc_get_all_changes_capture_instance 또는>< cdc.fn_cdc_get_net_changes_<capture_instance> 쿼리하여 반환된 캡처된 열에 대한 열 정보를 가져오는 데 사용합니다sys.sp_cdc_get_captured_columns
. 열 이름, ID 및 위치는 캡처 인스턴스의 수명 동안 일정하게 유지됩니다. 추적된 테이블의 기본 원본 열의 데이터 형식이 변경될 때 열 데이터 형식만 변경됩니다. 원본 테이블에 추가되거나 원본 테이블에서 삭제된 열은 기존 캡처 인스턴스의 캡처된 열에 영향을 주지 않습니다.
sys.sp_cdc_get_ddl_history 사용하여 원본 테이블에 적용된 DDL(데이터 정의 언어) 문에 대한 정보를 가져옵니다. 추적되는 원본 열의 구조를 수정하는 모든 DDL 변경이 결과 집합에 반환됩니다.
사용 권한
db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다. 다른 모든 사용자의 경우 원본 테이블의 모든 캡처된 열에 대해 SELECT 권한이 필요하며 캡처 인스턴스에 대한 게이팅 역할이 정의된 경우 해당 데이터베이스 역할의 멤버 자격이 필요합니다. 호출자에게 원본 데이터를 볼 수 있는 권한이 없으면 함수는 오류 22981(Object doesn't exist or access is denied.
)을 반환합니다.
예제
다음 예제에서는 캡처 인스턴스에서 캡처된 열에 HumanResources_Employee
대한 정보를 반환합니다.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_get_captured_columns
@capture_instance = N'HumanResources_Employee';
GO