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