sys.sp_cdc_get_captured_columns (Transact-SQL)
針對指定擷取執行個體所追蹤的擷取來源資料行,傳回異動資料擷取中繼資料資訊。異動資料擷取僅適用於 SQL Server 2008 Enterprise、Developer 和 Evaluation 版本。
語法
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 |
來源資料表中資料行的識別碼。 |
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 |
如果是以日期時間為基礎,就是資料行的有效位數,否則為 NULL。 |
備註
您可以使用 sys.sp_cdc_get_captured_columns,取得透過查詢 cdc.fn_cdc_get_all_changes_<capture_instance> 或 cdc.fn_cdc_get_net_changes_<capture_instance> 擷取執行個體查詢函數所傳回之擷取資料行的相關資料行資訊。在擷取執行個體的存留期間,資料行名稱、識別碼和位置會維持不變。當追蹤資料表中基礎來源資料行的資料類型變更時,只有資料行資料類型會變更。在來源資料表中加入或卸除的資料行對於現有擷取執行個體的擷取資料行不會造成任何影響。如需詳細資訊,請參閱<設定異動資料擷取>。
您可以使用 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