CHANGE DATA CAPTURE
Fitur ini dapat difungsikan untuk meng-capture perubahan yang terjadi pada table di SQL Server pada aktivitas INSERT UPDATE DELETE investigasi sebuah tabel, tidak perlu repot lagi dengan trigger, join query atau timestamp column untuk menangkap perubahan data.
exec sys.sp_cdc_enable_db Mengaktifkan CDC use nama_database exec sys.sp_cdc_enable_db
Status CDC select name, is_cdc_enabled from sys.databases where name = 'nama_database_anda‘ NILAI 1 : AKTIF NILAI 0 : TIDAK AKTIF
Mengaktifkan CDC TABLE exec sys.sp_cdc_enable_table @source_schema=‘nama_schema', @source_name=‘nama_tabel’, @role_name=‘nama_role’
exec sys.sp_cdc_enable_table @source_schema=‘dbo', Contoh exec sys.sp_cdc_enable_table @source_schema=‘dbo', @source_name=‘penjualan’, @role_name=‘penjualan_CDC’
STATUS CDC TABLE select is_tracked_by_cdc from sys.tables where name=‘nama_tabel‘ NILAI 1: AKTIF NILAI 0: TIDAK AKTIF
Menggunakan fungsi declare @begin_time datetime, @end_time datetime declare @begin_lsn binary(10), @end_lsn binary(10) SET @begin_time = '2013-10-11 07:50:00.000'; SET @end_time = '2013-10-11 09:40:00.000'; SET @begin_lsn = sys.fn_cdc_map_time_to_lsn('smallest greater than', @begin_time); SET @end_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal', @end_time); -- Query menggunakan function cdc select * from cdc.fn_cdc_get_all_changes_XXXXX(@begin_lsn, @end_lsn, 'all');
Field __$operation arti nilai pada field __$operation : 1 = penghapusan / delete 2 = penambahan / insert 3 = perubahan / update (nilai lama / old values) 4 = perubahan / update (nilai baru / new values)