一、開啟數據庫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
