CDC 检测表格变更

状态:
1、删除
2、新增
3、修改前
4、修改后

–https://www.cnblogs.com/chenmh/p/4408825.html

--------------------------------启动数据库捕获
–开启cdc
USE [FJXTest]
EXECUTE sys.sp_cdc_enable_db
GO
—如果开启数据库捕获报错误:15517,使用下面的方法处理
ALTER AUTHORIZATION ON DATABASE::[AdventureWorks2008R2] TO [sa]

—查看是否设置成功,1代表开启cdc
SELECT is_cdc_enabled FROM SYS.databases WHERE name=‘FJXTest’

--------------------------------设置跟踪表
– sys.sp_cdc_enable_table
– [ @source_schema = ] ‘FJXTest’, —表所属的架构名
– [ @source_name = ] ‘cdc_test’ ,----表名
– [ @role_name = ] ‘denghua’—是用于控制更改数据访问的数据库角色的名称。
– [,[ @capture_instance = ] ‘capture_test’ ]–是用于命名变更数据捕获对象的捕获实例的名称,这个名称在后面的存储过程和函数中需要经常用到。
– [,[ @supports_net_changes = ] supports_net_changes ]—指示是否对此捕获实例启用净更改查询支持如果此表有主键,或者有已使用 @index_name 参数进行标识的唯一索引,则此参数的默认值为 1。否则,此参数默认为 0。
– [,[ @index_name = ] ‘id’ ]–用于唯一标识源表中的行的唯一索引的名称。index_name 为 sysname,并且可以为 NULL。如果指定,则 index_name 必须是源表的唯一有效索引。如果指定 index_name,则标识的索引列优先于任何定义的主键列,就像表的唯一行标识符一样。
– [,[ @captured_column_list = ] ‘Null’ ]–需要对哪些列进行捕获。captured_column_list 的数据类型为 nvarchar(max),并且可以为 NULL。如果为 NULL,则所有列都将包括在更改表中。
– [,[ @filegroup_name = ] ‘filegroup_name’ ]–是要用于为捕获实例创建的更改表的文件组。
– [,[ @partition_switch = ] ‘1’ ]–指示是否可以对启用了变更数据捕获的表执行 ALTER TABLE 的 SWITCH PARTITION 命令。allow_partition_switch 为 bit,默认值为 1。

USE FJXTest;
GO
EXEC sys.sp_cdc_enable_table
@source_schema = N’dbo’
, @source_name = N’cdc_test_copy’
, @role_name = null–增加的角色
, @capture_instance = N’cdc_test_copy’–实例名
, @supports_net_changes = 1
, @index_name = N’id’
, @captured_column_list = NULL–跟踪的字段
, @filegroup_name = DEFAULT;
GO
—查询表是否启动跟踪,值为1标示已启动
SELECT is_tracked_by_cdc FROM SYS.tables WHERE name=‘frbrand’

—所有cdc有关的对象
SELECT * FROM SYS.all_objects WHERE name LIKE '%CDC%'OR SCHEMA_ID IN(SELECT SCHEMA_ID FROM SYS.schemas WHERE name=‘CDC’)
ORDER BY TYPE
SELECT * FROM msdb.SYS.objects WHERE name=‘cdc_jobs’

----禁用CDC
EXEC sys.sp_cdc_disable_table
@source_schema = N’dbo’,
@source_name = N’stockpast’,
@capture_instance = N’dbo_stockpast’
GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值