首页 > 新闻系统 > 编程天地 > 文章正文

SQL Server2008新功能 捕获数据变化2

2008-02-29 11:39:57 来源:IT专家网 作者:Jackie 点击:
这一部分将继续讨论在数据库和表上启动捕获数据变化这一功能,对于开启了CDC的表,SQL Server又是如何监控它们的数据变化的。

 
  够监控表的变化,这是SQL Server 2008的一个新特征。我们可以通过SQL Server 2008的变化数据捕获功能轻松地监控表的变化。

  文章的第一部分说明了如何在数据库中启动SQL Server这项新功能--捕捉数据变化,同时也讲解了如何对数据表启用这项功能,并监控表上数据定义语言的变化,并解释了CDC模式以及该模式下各对象实现的功能。

  注:本文根据SQL Server 2008-11月CTP写作而成。

  这一部分将继续讨论在数据库和表上启动捕获数据变化这一功能,对于开启了CDC的表,SQL Server又是如何监控它们的数据变化的。

  在文章的第一部分,我们创建了一个名为Mydatabase的数据库,并在该数据库中创建了一个名为Mytable的表,现在我们要在该表上增加一些列,来看看数据定义语言的变化是如何被捕捉的。

  下面,我们先向数据库中添加一些数据。

  第一步

  执行如下T-SQL语句,如下图Fig 1.1所示。

  use MyDataBase
  go
  select * from MyTable
  go
  Insert into Mytable values (1, 'Dance Doll','221, West Broad st,
  Greenbay, Wisconsin',60000,1000)
  Insert into Mytable values (2, 'Rainbow Colors','21, East st,
  Denville, New Jersey',68000,1300)
  Insert into Mytable values (3, 'River Dance','1, South Broad st,
  Quincy, Massachusetts',76000,1600)
  Insert into Mytable values (4, 'Mickey Mouse','5, Main,
  Greenbay, Wisconsin',120000,12000)
  Insert into Mytable values (5, 'Universal Studios','7, New road,
  Danbury , Connecticut',45000,1600)
  go

  执行结果

  ID, Name, Address, Salary, Bonus
  home\sql2008 (HOME\MAK): (0 row(s) affected)
  home\sql2008 (HOME\MAK): (1 row(s) affected)
  home\sql2008 (HOME\MAK): (1 row(s) affected)
  home\sql2008 (HOME\MAK): (1 row(s) affected)
  home\sql2008 (HOME\MAK): (1 row(s) affected)
  home\sql2008 (HOME\MAK): (1 row(s) affected)

Fig 1.1

  图Fig 1.1
  
  CDC模式下,表lsn_time_mapping记录了lsn名称,事务开始和结束时间。我们可以查询一下这个表,查询语句如下:参考图Fig 1.2 

select * from cdc.lsn_time_mapping

  执行结果

  start_lsn, tran_begin_time, tran_end_time, tran_id
  0x0000001C0000018B002F, 2008-01-16 01:53:38.840, 2008-01-16 01:53:38.840, 0x00000000029C
  0x0000001C000001920003, 2008-01-16 01:53:38.857, 2008-01-16 01:53:38.857, 0x00000000029F
  0x0000001C000001930003, 2008-01-16 01:53:38.857, 2008-01-16 01:53:38.857, 0x0000000002A0
  0x0000001C000001940003, 2008-01-16 01:53:38.857, 2008-01-16 01:53:38.857, 0x0000000002A1
  0x0000001C000001950003, 2008-01-16 01:53:38.857, 2008-01-16 01:53:38.857, 0x0000000002A2
  home\sql2008 (HOME\MAK): (5 row(s) affected)

9 7 3 1 2 3 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203