【发布时间】:2012-04-28 02:52:26
【问题描述】:
在运行ALTER DATABASE 命令启用更改跟踪之前,我正在尝试确定我的数据库上是否已启用更改跟踪。如果多次运行,我会尝试防止这些脚本出错。
我登记了sys.databases 和sys.dm_tran_commit_table,但找不到我要找的东西。
【问题讨论】:
标签: sql-server sql-server-2008
在运行ALTER DATABASE 命令启用更改跟踪之前,我正在尝试确定我的数据库上是否已启用更改跟踪。如果多次运行,我会尝试防止这些脚本出错。
我登记了sys.databases 和sys.dm_tran_commit_table,但找不到我要找的东西。
【问题讨论】:
标签: sql-server sql-server-2008
你可以使用这个查询:
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
【讨论】:
OBJECT_ID 更改为DB_ID,然后它就像一个魅力。
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 s on s.schema_id = tb.schema_id WHERE tb.is_tracked_by_cdc = 1
SELECT * FROM sys.change_tracking_databases WHERE database_id=DB_ID()(无参数)(