次の方法で共有


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)