共用方式為


sys.sp_cdc_get_ddl_history (Transact-SQL)

傳回自從針對指定的擷取執行個體啟用變更資料擷取以來,與該擷取執行個體相關聯的資料定義語言 (DDL) 變更記錄。異動資料擷取僅適用於 SQL Server 2008 Enterprise、Developer 和 Evaluation 版本。

主題連結圖示Transact-SQL 語法慣例

語法

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'

引數

  • [ @capture\_instance = ] 'capture_instance'
    這是與來源資料表相關聯之擷取執行個體的名稱。capture_instance 是 sysname,而且不能是 NULL。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

資料行名稱

資料類型

描述

source_schema

sysname

來源資料表結構描述的名稱。

source_table

sysname

來源資料表的名稱。

capture_instance

sysname

擷取執行個體的名稱。

required_column_update

bit

指出 DDL 變更要求更改變更資料表中的資料行,以便反映對來源資料行所做的資料類型變更。

ddl_command

nvarchar(max)

套用至來源資料表的 DDL 陳述式。

ddl_lsn

binary(10)

與 DDL 變更相關聯的記錄序號 (LSN)。

ddl_time

datetime

與 DDL 變更相關聯的時間。

備註

針對來源資料表變更來源資料表資料行結構的 DDL 修改 (例如,加入或卸除資料行,或變更現有資料行的資料類型) 都會保留在 cdc.ddl_history 資料表中。您可以使用這個預存程序來報告這些變更。cdc.ddl_history 中的項目是在擷取處理序讀取記錄中的 DDL 交易時完成的。

權限

需要 db_owner 固定資料庫角色中的成員資格,才能針對資料庫中的所有擷取執行個體傳回資料列。若為所有其他使用者,則需要來源資料表中所有擷取資料行的 SELECT 權限,而且如果定義了擷取執行個體的控制角色,便需要該資料庫角色的成員資格。

範例

下列範例會將資料行加入至 HumanResources.Employee 來源資料表,然後執行 sys.sp_cdc_get_ddl_history 預存程序來報告 DDL 變更 (套用至與 HumanResources_Employee 擷取執行個體相關聯的來源資料表)。

USE AdventureWorks;
GO
ALTER TABLE HumanResources.Employee
ADD Test_Column int NULL;
GO
-- Pause 10 seconds to allow the event to be logged. 
WAITFOR DELAY '00:00:10';
GO 
EXECUTE sys.sp_cdc_get_ddl_history 
    @capture_instance = 'HumanResources_Employee';
GO