我正在尝试使用CHANGE TRACKING编写一个监视表变化的SQL查询。 我的查询正在努力,我希望它还监视哪些列已更改。
我在COLUMNPROPERTY上得到一个空值,我怀疑这意味着我没有正确的权限。这是我第一次尝试这种类型的查询,所以我会理解任何有关我出错的指导。
非常感谢
朱迪
SELECT
CT.TableCalendar,
P.txtDescription, CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID ('P'), 'txtDescription', 'ColumnID'), CT.SYS_CHANGE_COLUMNS) changeDescription,
P.txtStartDate,
P.txtStartTime,
P.txtEndDate,
P.txtEndTime,
P.txtLocation,
P.intAllDayEvent,
P.intCategory,
P.intSubcategory,
P.txtCreatedBy,
CT.SYS_CHANGE_OPERATION,
CT.SYS_CHANGE_VERSION,
CT.SYS_CHANGE_COLUMNS,
CT.SYS_CHANGE_CONTEXT,
U.txtFirstname,
U.txtSurname
FROM
[dbo].[TableCalendar] AS P
RIGHT OUTER JOIN CHANGETABLE(CHANGES [dbo].[TableCalendar], @last_sync_version) AS CT ON P.TableCalendarID = CT.TableCalendarID
INNER JOIN [dbo].[TableUsers] AS U ON [txtCreatedBy] = U.txtUserCode
答案 0 :(得分:0)
这个查询是正确的,不幸的是,我试图跟踪更改的应用程序是以一种方式编写的,这意味着如果您编辑了一个字段,它会更新该表中的所有字段。