sys.fn_cdc_has_column_changed (Transact-SQL)

特定の更新マスクと列を指定し、関連する変更行の特定の列が更新済みであるかどうかを判別します。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sys.fn_cdc_has_column_changed ( 'capture_instance','column_name' , update_mask )

引数

  • ' capture_instance '
    キャプチャ インスタンスの名前を指定します。 capture_instance のデータ型は sysname です。

  • ' column_name '
    指定したキャプチャ インスタンスのレポート対象となるキャプチャ対象列を指定します。 column_name のデータ型は sysname です。

  • update_mask
    関連する変更行の更新済み列を識別するマスクを指定します。 update_mask のデータ型は varbinary(128) です。

戻り値の型

bit

説明

この関数を使用すると、変更データ クエリで返された更新マスクから情報を抽出できます。 主に、更新マスクの後処理で、関連する変更行の特定の列が変更されているかどうかを知る必要がある場合などに使用します。 詳細については、「変更データ キャプチャについて (SQL Server)」を参照してください。

この情報を変更データ クエリの過程で取得する場合は、この関数の代わりに、sys.fn_cdc_get_column_ordinal 関数および sys.fn_cdc_is_bit_set 関数を使用することをお勧めします。 必要な列序数が 1 回しか計算されないようにするために、変更データをクエリする前に fn_cdc_get_column_ordinal 関数を使用します。 クエリ内で fn_cdc_is_bit_set を使用して、返された各行の更新マスクから情報を抽出します。

権限

sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーシップが必要です。 それ以外のすべてのユーザーについては、ソース テーブルのすべてのキャプチャ対象列に対する SELECT 権限が必要です。さらに、キャプチャ インスタンスのゲーティング ロールが定義されている場合は、そのデータベース ロールのメンバーシップが必要です。

関連項目

参照

cdc.<capture_instance>_CT (Transact-SQL)

cdc.captured_columns (Transact-SQL)