SQL Server2008新功能 捕获数据变化1
2008-02-29 11:15:17 来源:IT专家网 作者:Jackie 点击:
能够监控表的变化,这是SQL Server 2008的一个新特征。我们可以通过SQL Server 2008的变化数据捕获功能轻松地监控表的变化。这一部分将阐述如何对一个数据库进行变化数据捕获,如何对一个表进行变化数据捕获,以及如何监控一个表的数据定义语言变化。
据变化)模式下。CDC模式也能够存储它所监控的索引信息。
第四步
通过如下的T-SQL语句,我们可以看到数据库上的捕获数据变化功能是否已经启动。
SELECT is_cdc_enabled FROM sys.databases WHERE name = 'MyDataBase'
执行结果
is_cdc_enabled
--------------
1
home\sql2008(HOME\MAK): (1 row(s) affected) |
第五步
使用如下的T-SQL语句,我们可以看到某个表上的捕获数据变化功能是否已经启动。
SELECT is_tracked_by_cdc FROM sys.tables WHERE name = 'MyTable'
执行结果
is_tracked_by_cdc
-----------------
1
home\sql2008(HOME\MAK): (1 row(s) affected) |
第六步
接下来,我们改变一下表的结构,看看捕获数据变化功能是否能够捕捉到这些变化。执行如下的SQL语句,如图Fig 1.8所示
USE [MyDataBase]
GO
Alter Table MyTable add Address varchar(500)
GO
Alter Table MyTable add Salary money
GO
Alter Table MyTable add Bonus money
GO |

查询CDC模式下的表ddl_history,如图Fig 1.9所示
select * from cdc.ddl_history
执行结果
|
source_object_id, object_id, required_column_update, ddl_command, ddl_lsn, ddl_time
53575229, 389576426, 0, Alter Table MyTable add Address varchar(500)
, 0x0000001C000001350001, 2008-01-07 19:23:00.000
53575229, 389576426, 0, Alter Table MyTable add Salary money
, 0x0000001C000001370018, 2008-01-07 19:23:00.000
53575229, 389576426, 0, Alter Table MyTable add Bonus money
, 0x0000001C0000013D0018, 2008-01-07 19:23:00.000
home\sql2008(HOME\MAK): (3 row(s) affected) |

注:本文章基于SQL Server 2008 11月CTP。
结论
文章说明了如何在数据库中启动SQL Server这项新功能--捕捉数据变化,同时也讲解了如何对数据表启用这项功能,并监控表上数据定义语言的变化,并解释了CDC模式以及该模式下各对象实现的功能。