2011-06-20 22 views
7

當使用Sql 2008更改跟蹤有沒有辦法手動清理跟蹤表?Sql ChangeTracking清理表

我知道CHANGE_RETENTION和AUTO_CLEANUP屬性,但會對清理有更多的控制權。

回答

6

基本上這些更改跟蹤信息存儲在內部表中,並且無法手動清除。但是,我們仍然可以通過禁用/啓用表格的更改跟蹤來清除。

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

該命令將清理與特定表相關的所有更改跟蹤。

+0

在MS同步和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 
) 
"