基於 SQL Server 2008 11 月 CTP。
USE [master];
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDataBase') DROP DATABASE [MyDataBase];
CREATE DATABASE [MyDataBase];
USE [MyDataBase];
CREATE TABLE [dbo].[MyTable] (
[ID] [int] NOT NULL,
[Name] [varchar](100) NULL,
CONSTRAINT [MyTable_PK] PRIMARY KEY CLUSTERED ([ID] ASC)
) ON [PRIMARY];
USE [MyDataBase];
EXEC sys.sp_cdc_enable_db_change_data_capture;
系統建立 cdc 結構描述與 5 張系統表:captured_columns, change_tables, ddl_history, index_columns, lsn_time_mapping (初始皆空)。
USE [MyDataBase];
EXEC sys.sp_cdc_enable_table_change_data_capture
@source_schema = 'dbo',
@source_name = 'MyTable',
@role_name = 'cdc_MyTable';
Agent 自動建立 cdc.MyDataBase_capture 與 cdc.MyDataBase_cleanup 兩項作業。
SELECT is_cdc_enabled FROM sys.databases WHERE name = 'MyDataBase'; -- 1 表示啟用
SELECT is_tracked_by_cdc FROM sys.tables WHERE name = 'MyTable'; -- 1 表示啟用
ALTER TABLE MyTable ADD Address varchar(500);
ALTER TABLE MyTable ADD Salary money;
ALTER TABLE MyTable ADD Bonus money;
SELECT * FROM cdc.ddl_history;
結果顯示三筆 DDL 命令與 LSN、時間戳記,證明 CDC 成功捕捉結構描述變更。
本文示範建立資料庫、資料表、啟用 CDC、驗證狀態與監控 DDL 變更完整流程,奠定後續資料變更擷取基礎。