SQL Server CDC可捕获哪些DDL操作?约束及表操作无法捕获求助
SQL Server 2017 CDC的DDL操作捕获范围说明
约束类操作(添加/删除主键、外键等)
SQL Server CDC不支持捕获约束的添加或删除操作,像alter table t add primary key(col1)这类语句不会被记录到cdc.ddl_history中。CDC仅会捕获修改表列定义的DDL操作,比如添加、删除、修改列,约束变更不在其捕获范围内。
表的创建、删除、重命名操作
- 创建表:新表默认不会自动启用CDC,所以
create table t(col1 int)这类操作不会被CDC记录。即便后续手动执行sys.sp_cdc_enable_table为该表开启CDC,创建表本身的操作依然不会出现在cdc.ddl_history里。 - 删除表:若表已启用CDC,删除表的操作同样不会被CDC捕获,
cdc.ddl_history不会记录该操作,且关联的CDC系统对象(如捕获实例、变更表)会随表一同被删除。 - 重命名表:重命名表的操作也不在CDC的DDL捕获范围内,无论是通过
sp_rename还是alter table ... rename to执行的重命名,都不会被记录。
额外说明
SQL Server CDC的DDL捕获设计仅聚焦于表列结构的变更,约束、表的创建/删除/重命名这类操作不在其支持范畴。如果需要监控这些操作,可通过SQL Server Audit或DDL触发器来实现。
内容的提问来源于stack exchange,提问作者Abhinav Singh
相关产品推荐
相关产品推荐

