/*-------------------------------------------------------- Francisco Otero Otero (http://geeks.ms/blogs/franotero) Código de ejemplo básico para ChangeDataCapture (CDC) Abril 2011 --------------------------------------------------------*/ --Creamos Tabla de ejemplo --drop table dbo.Productos create table dbo.Productos ( idProducto int primary key, Nombre varchar(50), Precio decimal(6,2), PrecioRebajado decimal(6,2) ) --Habilitamos ChangeDataCapture para la base de datos EXEC sys.sp_cdc_enable_db GO --Habilitamos CDC para la tabla 'Productos' EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'Productos', @role_name = null, @supports_net_changes = 0 GO --Datos de pruebas: 3 inserciones, una actualización y un delete insert into dbo.Productos values (1,'Libro ASP.NET',20,19), (2,'Curso SQL Server 2008',1200,1100), (3,'Curso AJAX',1450,1400) update dbo.Productos set Nombre='Curso SQL Server 2008R25'--,PrecioRebajado=1150 where idProducto=2 delete dbo.Productos where idproducto=1 --Consulta de todos los cambios desde el primer LSN de la tabla --hasta la actualidad DECLARE @from_lsn binary(10), @to_lsn binary(10) SET @from_lsn =sys.fn_cdc_get_min_lsn('dbo_Productos') SET @to_lsn = sys.fn_cdc_get_max_lsn() SELECT *, case [__$operation] when 1 then 'Borrado' when 2 then 'Inserción' when 3 then 'PreUpdate' when 4 then 'PostUpdate' end Operacion FROM cdc.fn_cdc_get_all_changes_dbo_Productos (@from_lsn, @to_lsn, N'all update old');