在表上禁用CDC,但保留CDC表作为历史记录

时间:2019-01-23 15:33:21

标签: sql-server sql-server-2008-r2 cdc

当前,我在表DATA_Sale上启用了CDC。我想禁用任何新更改的日志记录,但想保留CDC进行记录。这可能吗?

1 个答案:

答案 0 :(得分:1)

如@SeanLange在评论sys.sp_cdc_disable_table中发布的文档所指出的那样,在表上禁用CDC的过程将导致正在捕获更改的相应系统表被删除。

但是,知道系统表将消失意味着您必须为此计划。

首先,除非您正在运行其他捕获实例,否则可能要stop capturing new changes

EXEC sys.sp_cdc_stop_job @job_type = N'capture'; 

现在复制系统表,并将数据移植到该表上。 'SELECT ... INTO ...`可以。以后可以根据需要调整结构。

然后继续并禁用捕获。