如何检查是否启用了更改跟踪

Ada*_*ger 24 sql-server sql-server-2008

我正在尝试确定在运行ALTER DATABASE命令启用它之前是否已在我的数据库上启用了更改跟踪.如果多次运行,我试图防止这些脚本出错.

我签到了sys.databases,sys.dm_tran_commit_table但无法找到我要找的东西.

Lam*_*mak 36

您可以使用此查询:

SELECT * 
FROM sys.change_tracking_databases 
WHERE database_id=DB_ID('MyDatabase')
Run Code Online (Sandbox Code Playgroud)

  • 所以我不熟悉变更跟踪,并在搜索变更数据捕获(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 sys.schemas on s.schema_id = tb.schema_id WHERE tb.is_tracked_by_cdc = 1` (2认同)