sys.fn_cdc_has_column_changed (Transact-SQL)
適用対象: SQL Server
指定した更新マスクが、関連付けられている変更行で指定した列が更新されたことを示すかどうかを示します。
構文
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)