SQL变更追踪

时间:2019-12-06 00:22:41

标签: sql-server

我们在复制服务器上进行了更改跟踪。 sys_change_columns中的更改跟踪行的值为空,这似乎是更新操作而不是插入操作。根据此thread的回答,在给定的示例中,当删除记录并重新插入行时,更改跟踪不会记住删除之前的非键值,因此该行被设置为更新并且sys_change_columns将为null。 在删除和重新插入旁边还有其他情况吗?在我们的情况下,我们的复制在不存在时插入一行,在发生更改时更新,在记录不在源中时删除。当操作为“ U”时,为什么某些记录在sys_change_columns中具有空值,我们对此感到困惑。我们希望它是一个“我”。

以下是示例查询:

SELECT *,
[dbo].[syncVersionCommitDateTime](SYS_CHANGE_VERSION) UpdateDate
FROM CHANGETABLE(CHANGES dbo.po_line, 1) AS ChTbl   
where po_id = 1057737
order by SYS_CHANGE_VERSION desc

Query result

0 个答案:

没有答案