sys.sp_cdc_help_change_data_capture (Transact-SQL)
針對在目前資料庫中啟用異動資料擷取的每個資料表,傳回異動資料擷取組態。 每個來源資料表最多可傳回兩個資料列 (每個擷取執行個體一個資料列)。 並非每個 Microsoft SQL Server 版本中都無法異動資料擷取。 如需 SQL Server 版本所支援功能的清單,請參閱<SQL Server 2014 版本支援的功能>。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
sys.sp_cdc_help_change_data_capture
[ [ @source_schema = ] 'source_schema' ]
[, [ @source_name = ] 'source_name' ]
引數
[ @source\_schema = ] 'source_schema'
這是來源資料表所屬的結構描述名稱。 source_schema 是 sysname,預設值為 NULL。 當指定 source_schema 時,也必須指定 source_name。如果為非 NULL, source_schema 就必須存在目前資料庫中。
如果 source_schema 為非 NULL,source_name 也必須為非 NULL。
[ @source\_name = ] 'source_name'
這是來源資料表的名稱。 source_name 是 sysname,預設值為 NULL。 當指定 source_name 時,也必須指定 source_schema。如果為非 NULL, source_name 就必須存在目前資料庫中。
如果 source_name 為非 NULL,source_schema 也必須為非 NULL。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
資料行名稱 |
資料類型 |
說明 |
---|---|---|
source_schema |
sysname |
來源資料表結構描述的名稱。 |
source_table |
sysname |
來源資料表的名稱。 |
capture_instance |
sysname |
擷取執行個體的名稱。 |
object_id |
int |
與來源資料表相關聯之變更資料表的識別碼。 |
source_object_id |
int |
來源資料表的識別碼。 |
start_lsn |
binary(10) |
代表查詢變更資料表之低端點的記錄序號 (LSN)。 NULL = 尚未建立低端點。 |
end_lsn |
binary(10) |
代表查詢變更資料表之高端點的 LSN。 在 SQL Server 2012 中,這個資料行一律是 NULL。 |
supports_net_changes |
bit |
淨變更支援已啟用。 |
has_drop_pending |
bit |
SQL Server 2012 中不使用。 |
role_name |
sysname |
用來控制變更資料之存取權的資料庫角色名稱。 NULL = 不使用角色。 |
index_name |
sysname |
在來源資料表中,用來唯一識別資料列的索引名稱。 |
filegroup_name |
sysname |
變更資料表所在的檔案群組名稱。 NULL = 變更資料表位於資料庫的預設檔案群組中。 |
create_date |
datetime |
啟用擷取執行個體的日期。 |
index_column_list |
nvarchar(max) |
在來源資料表中,用來唯一識別資料列的索引資料行清單。 |
captured_column_list |
nvarchar(max) |
擷取的來源資料行清單。 |
備註
當 source_schema 和 source_name 都預設為 NULL,或者都明確設定為 NULL 時,這個預存程序就會針對呼叫端擁有 SELECT 存取權的所有資料庫擷取執行個體傳回資訊。 當 source_schema 和 source_name 為非 NULL 時,只會傳回特定具名之啟用資料表的相關資訊。
權限
當 source_schema 和 source_name 為 NULL 時,呼叫端的授權就會決定結果集要包含哪些啟用資料表。 呼叫端必須擁有擷取執行個體之所有擷取資料行的 SELECT 權限,以及要包含之資料表資訊的任何已定義控制角色中的成員資格。 db_owner 資料庫角色的成員可以檢視所有已定義之擷取執行個體的相關資訊。 要求特定啟用資料表的資訊時,就會針對具名資料表套用相同的 SELECT 和成員資格準則。
範例
A.針對指定的資料表傳回異動資料擷取組態資訊
下列範例會針對 HumanResources.Employee 資料表傳回異動資料擷取組態。
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_help_change_data_capture
@source_schema = N'HumanResources',
@source_name = N'Employee';
GO
B.針對所有資料表傳回異動資料擷取組態資訊
下列範例會針對資料庫中包含呼叫端經授權可存取之變更資料的所有啟用資料表,傳回組態資訊。
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_help_change_data_capture;
GO