delete from test.shift
--To enable CDC
for the database
USE MF
GO
EXEC sys.sp_cdc_enable_db
GO 
--to enable the
cdc for the particular table and schema
USE MF
GO
EXEC sys.sp_cdc_enable_table
@source_schema = N'test',
@source_name   = N'Shift',
@role_name     = NULL
GO
--To enable the
Clean up job
--@retention
indictaes  minutes
--The maximum value is 52494800
(100 years).
EXECUTE sys.sp_cdc_change_job 
    @job_type =
N'cleanup',
    @retention =
52494800 ;
GO
--To see the
jobs are running
--sp_cdc_help_jobs
create table test.shift
(
shiftid int identity(1,1),
Name varchar(20),
starttime date,
Endtime date,
ModifiedDate date
)
insert into test.shift  values ('Day',GETDATE(),GETDATE(),GETDATE())
insert into test.shift  values ('Evening',GETDATE(),GETDATE(),GETDATE())
insert into test.shift  values ('Night',GETDATE(),GETDATE(),GETDATE())
select * from test.shift
INSERT INTO test.[Shift]
       ([Name],[StartTime],[EndTime],[ModifiedDate])
VALUES ('Tracked
Shift',GETDATE(), GETDATE(), GETDATE())
--To see any
error and failing jobs
--select * from
sys.dm_cdc_errors
EXEC sys.sp_cdc_help_change_data_capture
UPDATE [test].[Shift]
SET starttime = '2012-12-11'
WHERE ShiftID = 3
DELETE
FROM [test].[Shift]
WHERE ShiftID = 4
GO 
SELECT  *, dbo.Hex2Bin('_$update_mask')
  FROM [MF].[cdc].[test_Shift_CT]
  select dbo.Hex2Bin ('0x06')
  
Create Procedure dbo.usp_timeDiff  
(  
 @begin_time DATETIME,   
 @end_time DATETIME  
)  
as begin  
DECLARE  @begin_lsn BINARY(10), @end_lsn BINARY(10);  
SELECT @begin_lsn
= sys.fn_cdc_map_time_to_lsn('smallest greater than',@begin_time);   
SELECT @end_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal',@end_time);   
SELECT *   
FROM cdc.fn_cdc_get_all_changes_test_Shift(@begin_lsn,@end_lsn,'all')   
End  
--  to see the changes for the particular period
exec
usp_timeDiff '2013-12-12
00:00:00' ,'2013-12-12
14:55'
--In order to
effect the changes made in cleanup job ,below will stop
EXEC sys.sp_cdc_stop_job @job_type
= N'capture';
GO
--default is
capture
EXEC sys.sp_cdc_start_job
--Cleanup is the
parameter we need to specify
EXEC sys.sp_cdc_start_job @job_type
= N'cleanup';
 
nice article
ReplyDelete