Sql ChangeTracking清理表

时间:2011-06-20 18:49:53

标签: sql-server sql-server-2008

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

我知道CHANGE_RETENTION和AUTO_CLEANUP属性,但会更好地控制清理。

2 个答案:

答案 0 :(得分:6)

基本上,这些更改跟踪信息存储在内部表中,没有手动清理的选项。但我们仍然可以通过禁用/启用表格的更改跟踪来清除。

alter table <tableName> disable change_tracking  
alter table <tableName> enable change_tracking  

该命令将清除与特定表格相关的所有更改跟踪。

答案 1 :(得分: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
)
"