SQL Server2008新功能 捕获数据变化1
2008-02-29 11:15:17 来源:IT专家网 作者:Jackie 点击:
能够监控表的变化,这是SQL Server 2008的一个新特征。我们可以通过SQL Server 2008的变化数据捕获功能轻松地监控表的变化。这一部分将阐述如何对一个数据库进行变化数据捕获,如何对一个表进行变化数据捕获,以及如何监控一个表的数据定义语言变化。
第一步
先创建一个名为“MyDataBase“的数据库,如下所示(参见图Fig 1.0):
USE [master]
GO
/*** Object: Database [MyDataBase] Script Date: 01/07/2008 18:46:15 ***/
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDataBase')
DROP DATABASE [MyDataBase]
GO
USE [master]
GO
/*** Object: Database [MyDataBase] Script Date: 01/07/2008 18:46:33 ***/
CREATE DATABASE [MyDataBase]
GO |

第二步
在MyDataBase数据库中创建一个名为MyTable的表,如下所示(参见图Fig 1.1):
|
USE [MyDataBase]
GO
/*** Object: Table [dbo].[MyTable] Script Date: 01/07/2008 18:52:14 ***/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]')
AND type in (N'U'))
DROP TABLE [dbo].[MyTable]
GO
USE [MyDataBase]
GO
/*** Object: Table [dbo].[MyTable] Script Date: 01/07/2008 18:52:26 ***/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MyTable](
[ID] [int] NOT NULL,
[Name] [varchar](100) NULL,
CONSTRAINT [MyTable_PK] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO |

第三步
为了监控表的变化,需要在数据库上开启变化数据捕获功能。我们可以通过如下的SQL语句来开启这项功能。(参见图Fig 1.2)
到现在为止,数据库中都只有一个模式,那就是dbo。一旦我们开启变化数据捕获功能,一种新的模式和一些其它的对象将被创建。
USE [MyDataBase]
GO
EXEC sys.sp_cdc_enable_db_change_data_capture
GO |

在CDC模式下,如下的表被创建(参见图Fig 1.3)
cdc.captured_columns
cdc.change_tables
cdc.ddl_history
cdc.index_columns
cdc.lsn_time_mapping
当你查询这些表的时候,你会发现这些表都是空的。(参见图Fig 1.4)