七、SqlServer数据库,批量开启表cdc

启用/禁用数据库cdc

# 查看已启用cdc的数据库
SELECT name,is_cdc_enabled FROM sys.databases WHERE is_cdc_enabled = 1;

# 启用数据库cdc
EXECUTE sys.sp_cdc_enable_db;

#禁用数据库cdc
EXECUTE sys.sp_cdc_disable_db;

启用/禁用表cdc

#查看已开启cdc的表
SELECT name,is_tracked_by_cdc FROM sys.tables WHERE is_tracked_by_cdc = 1;

#启用表cdc
EXEC sys.sp_cdc_enable_table
    @source_schema = 'schema_name',
	@source_name   = 'table_name',
	@role_name     = NULL

# 不需要控制权限,则role_name为NULL

#禁用表cdc
EXEC sys.sp_cdc_disable_table
	@source_schema = 'schema_name',
	@source_name   =  'table_name',
	@capture_instance = 'cdc.change_tables中capture_instance字段'

批量开启表cdc,示例

begin
declare @temp varchar(100)
-- 申明游标为表名
declare tb_cursor cursor
    for (select name from sys.tables WHERE is_tracked_by_cdc=0 and schema_id=1)
-- 打开游标
open tb_cursor
-- 开始循环游标变量
fetch next from tb_cursor into @temp
-- 返回fetch语句执行的最后游标的状态
while @@fetch_status=0
	begin
	EXEC sys.sp_cdc_enable_table
	@source_schema = 'dbo',
	@source_name   = @temp,
	@role_name     = NULL
	-- 转到下一个游标
	fetch next from tb_cursor into @temp
	end
-- 关闭游标
close tb_cursor
-- 释放游标
deallocate tb_cursor
end ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值