SQL ChangeTracking 清理表

7

使用Sql 2008更改跟踪时,是否有一种手动清理跟踪表的方法?

我知道CHANGE_RETENTION和AUTO_CLEANUP属性,但更喜欢对清理有更多的控制。

2个回答

7
基本上,这些更改跟踪信息存储在内部表中,没有手动清除的选项。但是我们仍然可以通过为表禁用/启用更改跟踪来清除它们。
alter table <tableName> disable change_tracking  
alter table <tableName> enable change_tracking  

这个命令将清理与特定表相关的所有更改跟踪。


在使用MS Sync和Sql CT的情况下,这个不起作用。 - Brent

1
如果您想禁用所有表格的更改跟踪:
EXEC sp_msforeachtable "ALTER TABLE ? DISABLE CHANGE_TRACKING"
   , @whereand=" and exists (
   select null
   from sys.change_tracking_tables ctt
   where ctt.object_id = o.id
)
"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接