一、开启数据库cdc功能
1、查看是否开启cdc
SELECT name,is_cdc_enabled FROM sys.databases WHERE name = 'CDC_DB'
2、执行cdc
EXECUTE sys.sp_cdc_enable_db; #执行开始cdc
3、查询是否启用日志
SELECT is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用' ELSE 'CDC功能启用' END 描述 FROM sys.databases WHERE NAME = 'ecis' # 数据库名
示例:

4、启动sqlserver代理

运行一下代码:
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'
开启表的cdc功能:
https://blog.csdn.net/m0_37693200/article/details/118762972
二、调试cdc命令
开启sqlserver cdc功能
create table classify
(
id int primary key identity(1,1), -- 主键标识,从1开始,步长1增长
name nvarchar(20) not null -- not null 非空
)
-- 查看表的CDC状态
select name,is_tracked_by_cdc from sys.tables where name = 'demo';
-- 查看库的CDC状态
select is_cdc_enabled, name from sys.databases where name = 'schoolmasterreport_db';
-- 查看agent状态
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'
-- 查看最大序列号
SELECT sys.fn_cdc_get_max_lsn();
-- 查看版本
SELECT @@VERSION;
-- 对当前数据库启用 CDC
USE schoolmasterreport_db
GO
EXECUTE sys.sp_cdc_enable_db;
GO
-- 对当前数据库禁用 CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_disable_db
GO
-- 禁用表CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name = N'demo',
@capture_instance = N'dbo_demo'
GO
-- 开启表CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'demo',
@role_name = NULL
GO
