2012-04-16 42 views
21

我試圖確定在我的數據庫中是否已啓用更改跟蹤,然後運行ALTER DATABASE命令來啓用它。如果多次運行,我試圖防止這些腳本發生錯誤。如何檢查是否啓用了更改跟蹤

我檢查了sys.databasessys.dm_tran_commit_table,但無法找到我要找的東西。

回答

32

您可以使用此查詢:

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

謝謝。我不得不將'OBJECT_ID'改成'DB_ID',然後它就像一個魅力一樣。 – 2012-04-16 19:10:09

+0

@AdamWenger - 是的,你是對的,我更新了我的回答 – Lamak 2012-04-16 19:14:07

+0

所以我不熟悉變更追蹤,並發現這個問題搜索變更數據捕獲(CDC)。對於碰巧在這裏的其他人,等同於CDC的問題/答案是[在此找到](http://zarez.net/?p=2821)'SELECT s.name AS Schema_Name,tb.name AS Table_Name ,tb .object_id,tb.type,tb.type_desc,tb.is_tracked_by_cdc FROM SYS.TABLES TB INNER JOIN上s.schema_id = tb.schema_id sys.schemas S其中tb.is_tracked_by_cdc = 1' – 2016-09-14 16:26:37