[英]How to remove columns from CDC (in SQL Server)
我已使用以下代码在表上启用了CDC,默认情况下,它包括所有列。 在指定列的同时,还有另一种在表上启用CDC的方法(下面提供了代码)。 但是,对我而言,为时已晚-鉴于我的CDC已经创建并包含所有列。 如何从CDC监视列表中删除不需要的列(我在元数据中到处搜索,但是找不到任何东西):
-- The following enabled the CDC on a table:
EXECUTE sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'TableName',
@role_name = N'cdc_Admin',
@supports_net_changes = 1
-- Now all of the columns are included in the CDC.
--Alternate (which is too late now given my CDC on table was already created/performed)
EXECUTE sys.sp_cdc_enable_table
@source_schema = N'dbo' ,
@source_name = N'Orders' ,
@role_name = N'cdc_Admin' ,
@captured_column_list = N'OrderID,CustomerAccount,Product,SalesPerson'
CDC允许您同时为给定表最多激活两个捕获实例(以适应基础表上的架构更改)。 因此,为了迁移到新捕获实例,您指定的列(如你在你的第二个电话做sys.sp_cdc_enable_table
),请提供一个值@capture_instance
参数sys.sp_cdc_enable_table
和迁移ETL作业使用它。 然后,一旦你确信没有什么是使用旧捕获实例,放弃它使用sys.sp_cdc_disable_table
再次提供一个值@capture_instance
(此时,老一)。
在SSIS中,我可以将CDC数据源上的[CDC处理模式]设置为“带有更新掩码的网络”,然后查看更改了哪些列。
您可以暂存所有数据,并使用更新掩码仅处理要保留的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.