2012-04-16 19 views
21

Próbuję określić, czy zmiana śledzenia jest już włączona w mojej bazie danych, zanim uruchomię komendę ALTER DATABASE, aby ją włączyć. Próbuję zapobiec błędom w tych skryptach, jeśli uruchomię je wiele razy.Jak sprawdzić, czy śledzenie zmian jest włączone

Sprawdziłem sys.databases i sys.dm_tran_commit_table, ale nie mogłem znaleźć tego, czego szukałem.

Odpowiedz

32

Możesz użyć tej kwerendy:

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

dziękuję. Musiałem zmienić 'OBJECT_ID' na' DB_ID', a potem zadziałało jak czar. –

+0

@AdamWenger - Tak, masz rację, zaktualizowałem swoją odpowiedź – Lamak

+0

Więc nie byłem zaznajomiony ze zmianą śledzenia i znalazłem to pytanie przeszukując Change Data Capture (CDC). Dla innych, którzy tu są, równoważne pytanie/odpowiedź dla CDC jest [tutaj znalezione] (http://zarez.net/?p=2821) 'WYBIERZ s.name AS Schema_Name, tb.name AS Nazwa tabeli , tb .object_id, tb.type, tb.type_desc, tb.is_tracked_by_cdc OD sys.tables tb INNER JOIN sys.schemas s na s.schema_id = tb.schema_id GDZIE tb.is_tracked_by_cdc = 1 ' –

Powiązane problemy