sys.fn_cdc_has_column_changed (Transact-SQL)

適用対象:SQL Server

指定した更新マスクが、関連付けられている変更行で指定した列が更新されたことを示しているかどうかを示します。

Transact-SQL 構文表記規則

構文

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

引数

'capture_instance'
キャプチャ インスタンスの名前を指定します。 capture_instancesysname です

'column_name'
レポート対象の指定されたキャプチャ インスタンスのキャプチャ列です。 column_namesysname です

update_mask
関連付けられている変更行の更新された列を識別するマスクです。 update_maskvarbinary(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)