sys.sp_cdc_get_captured_columns(Transact-SQL)
지정한 캡처 인스턴스에서 추적한 캡처된 원본 열에 대한 변경 데이터 캡처 메타데이터 정보를 반환합니다. 변경 데이터 캡처는 SQL Server 2008 Enterprise Edition, Developer Edition 및 Evaluation Edition에서만 사용할 수 있습니다.
구문
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입니다. |
ordinal_position |
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입니다. |
주의
sys.sp_cdc_get_captured_columns를 사용하면 cdc.fn_cdc_get_all_changes_<capture_instance> 또는 cdc.fn_cdc_get_net_changes_<capture_instance> 캡처 인스턴스 쿼리 함수를 쿼리하여 반환된 캡처된 열에 대한 열 정보를 얻을 수 있습니다. 열 이름, ID 및 위치는 캡처 인스턴스의 수명 동안 일정하게 유지됩니다. 추적된 테이블에서 기본 원본 열의 데이터 형식이 변경될 경우에만 열 데이터 형식이 변경됩니다. 원본 테이블에 추가되거나 제거된 열은 기존 캡처 인스턴스의 캡처된 열에 영향을 미치지 않습니다. 자세한 내용은 변경 데이터 캡처 구성을 참조하십시오.
sys.sp_cdc_get_ddl_history를 사용하면 원본 테이블에 적용된 DDL(데이터 정의 언어) 문에 대한 정보를 얻을 수 있습니다. 추적되는 원본 열의 구조를 수정하는 모든 DDL 변경이 결과 집합에 반환됩니다.
사용 권한
db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다. 다른 모든 사용자의 경우 원본 테이블에서 캡처된 모든 열에 대한 SELECT 권한이 필요하며 캡처 인스턴스에 대한 제어 역할이 정의된 경우 해당 데이터베이스 역할의 멤버 자격이 필요합니다. 호출자에게 원본 데이터를 볼 수 있는 권한이 없으면 함수는 오류 22981(개체가 없거나 액세스가 거부되었습니다)을 반환합니다.
예
다음 예에서는 HumanResources_Employee 캡처 인스턴스의 캡처된 열에 대한 정보를 반환합니다.
USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_get_captured_columns
@capture_instance = N'HumanResources_Employee';
GO