Wednesday, July 21, 2010

Sql Server Änderungs Verfolgungs Technologien:

Trigger
SqlDependency … .net Callback (Query Notification OnChange), aber viele Einschränkungen im Select
CDC … ChangeDataCapture …Inhalt der geänderten Spalten in Tabelle_CT (pro Tabelle die man verfolgt eine Änderungstabelle)
CT Change Tracking … nur Primary Key der geänderten Zeilen
SqlTrace … loggt in Files
Notify … Depricated, Notifikationen auf SMS, EMail, http usw.

CT einschalten:
ALTER DATABASE NotificationTest SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 3 DAYS, AUTO_CLEANUP = ON)

SELECT * FROM sys.change_tracking_databases

ALTER DATABASE NotificationTest SET ALLOW_SNAPSHOT_ISOLATION ON;

ALTER TABLE dbo.Tasks ENABLE CHANGE_TRACKING WITH(TRACK_COLUMNS_UPDATED = ON)

SELECT * FROM sys.change_tracking_tables
--Änderungen abfragen
SELECT * FROM CHANGETABLE (CHANGES dbo.Tasks,0) as CT


CDC einschalten:
EXEC sys.sp_cdc_enable_db


EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'Tasks',
@role_name = NULL,
@supports_net_changes = 1


select * from cdc.captured_columns
select * from cdc.change_tables
select * from cdc.dbo_Tasks_CT --- History (alle Datensätze vorher, Nachher)

No comments: