什么类似于CDC中的CHANGE_TRACKING_IS_COLUMN_IN_MASK?

时间:2012-07-25 12:45:40

标签: sql

我正在开发一个同步数据的应用程序。我们决定使用CDC代替CT,因为我们需要更多的信息,但同时我们需要一个函数来返回列,这个更改会影响它使用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.

由于

1 个答案:

答案 0 :(得分:0)

我们可以使用sys.fn_cdc_is_bit_set来识别。请在下面找到详细信息链接

http://msdn.microsoft.com/en-us/library/bb500241.aspx