次の方法で共有


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

説明

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

この情報を変更データ クエリの過程で取得する場合は、この関数の代わりに、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 権限が必要です。さらに、キャプチャ インスタンスのゲーティング ロールが定義されている場合は、そのデータベース ロールのメンバシップが必要です。