使用Sql 2008时,更改跟踪是否有办法手动清理跟踪表?
我知道CHANGE_RETENTION和AUTO_CLEANUP属性,但会更好地控制清理。
答案 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
)
"