データを同期するアプリケーションに取り組んでいます。より多くの情報が必要なため、CT の代わりに CDC を使用することにしましたが、同時に、CT を使用して次のように変化する列を返す関数が必要です。
SELECT
CTTable.SYS_CHANGE_OPERATION,
[FNameCh] = CHANGE_TRACKING_IS_COLUMN_IN_MASK(COLUMNPROPERTY(OBJECT_ID('CONTACT_TABLE'),
'contact_name', 'ColumnId'), SYS_CHANGE_COLUMNS),
[LNameCh] = CHANGE_TRACKING_IS_COLUMN_IN_MASK(COLUMNPROPERTY(OBJECT_ID('CONTACT_TABLE'),
'contact_lastname', 'ColumnId'), SYS_CHANGE_COLUMNS),
FROM CHANGETABLE (CHANGES Contacts, @VersionId) AS CTTable
LEFT OUTER JOIN Contacts AS C ON C.CONTACT_ID = CTTable.CONTACT_ID
GO
編集:
SELECT * , sys.fn_cdc_has_column_changed ('dbo_CONTACT_TABLE', 'contact_name', __$update_mask) AS FNameCh
From cdc.fn_cdc_get_all_changes_dbo_CONTACT_TABLE(@Start_Lsn,@End_Lsn,'all')
which 1 for if the contact_name is changed and 0 if is not.
ありがとう