次の方法で共有


sys.sp_cdc_get_ddl_history (Transact-SQL)

指定されたキャプチャ インスタンスに関連付けられたデータ定義言語 (DDL) の変更履歴を返します。変更履歴は、指定されたキャプチャ インスタンスに対して変更データ キャプチャが有効にされた時点からの履歴になります。 変更データ キャプチャは、Microsoft SQL Server のすべてのエディッションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、「SQL Server 2014 の各エディションがサポートする機能」を参照してください。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)

トピック リンク アイコン 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 ストアド プロシージャを実行して、キャプチャ インスタンス HumanResources_Employee に関連付けられたソース テーブルに適用される DDL の変更をレポートしています。

USE AdventureWorks2012;
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

関連項目

参照

sys.sp_cdc_help_change_data_capture (Transact-SQL)