2012-04-16 14 views
21

Sto cercando di determinare se il rilevamento delle modifiche è già abilitato sul mio database prima di eseguire il comando ALTER DATABASE per abilitarlo. Sto cercando di evitare errori con questi script se eseguito più volte.Come verificare se il rilevamento delle modifiche è abilitato

Ho effettuato il check-in sys.databases e sys.dm_tran_commit_table ma non sono riuscito a trovare quello che stavo cercando.

risposta

32

È possibile utilizzare questa query:

SELECT * 
FROM sys.change_tracking_databases 
WHERE database_id=DB_ID('MyDatabase') 
+0

Grazie. Ho dovuto cambiare 'OBJECT_ID' in' DB_ID', quindi ha funzionato come un incantesimo. –

+0

@AdamWenger - Sì, hai ragione, ho aggiornato la mia risposta – Lamak

+0

Quindi non avevo familiarità con Change Tracking e ho trovato questa domanda cercando su Change Data Capture (CDC). Per gli altri che si trovano qui, l'equivalente domanda/risposta per CDC è [trovato qui] (http://zarez.net/?p=2821) 'SELECT s.name AS Schema_Name, tb.name AS Nome tabella , tb .object_id, tb.type, tb.type_desc, tb.is_tracked_by_cdc DA sys.tables tb INNER JOIN sys.schemas s su s.schema_id = tb.schema_id DOVE tb.is_tracked_by_cdc = 1' –

Problemi correlati