WEB开发网
开发学院数据库MSSQL Server SQL Server 2008 的CDC功能 阅读

SQL Server 2008 的CDC功能

 2009-09-19 00:00:00 来源:WEB开发网   
核心提示: --这里将看到4条结果,其中operation为3和4是update操作的那条,SQL Server 2008 的CDC功能(2),3表示旧值,4表示新值--2表示新增--1表示删除 DECLARE@begin_timedatetime,@end_timedatetime,@from_lsnbi

SQL Server 2008 的CDC功能

--这里将看到4条结果,其中operation为3和4是update操作的那条,3表示旧值,4表示新值

--2表示新增

--1表示删除

DECLARE @begin_time datetime, @end_time datetime, @from_lsn binary(10), @to_lsn binary(10);
-- Obtain the beginning of the time interval.
SET @begin_time = GETDATE()-1; 
SET @end_time = GETDATE();
-- Map the time interval to a change data capture query range.
SELECT @from_lsn = sys.fn_cdc_map_time_to_lsn('smallest greater than or equal', @begin_time);
SELECT @to_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal', @end_time);
print @begin_time
print @end_time
print @from_lsn
print @to_lsn 
--创建一个存储过程,根据开始时间和结束时间读取变更记录
CREATE PROC GetCDCResult
(@begin_time DATETIME,@end_time DATETIME)
AS
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SELECT @from_lsn = sys.fn_cdc_map_time_to_lsn('smallest greater than or equal', @begin_time);
SELECT @to_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal', @end_time);
SELECT * FROM cdc.dbo_FactInternetSales_CT WHERE __$start_lsn BETWEEN @from_lsn AND @to_lsn 
--调用该存储过程
EXEC GetCDCResult '2009-4-27','2009-4-29' 
 
--撤销CDC
EXEC sys.sp_cdc_disable_table 'dbo', 
'FactInternetSales','All' 
EXEC sys.sp_cdc_disable_db 

Tags:SQL Server CDC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接