Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何检查是否启用了更改跟踪_Sql Server_Sql Server 2008 - Fatal编程技术网

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

Sql server 如何检查是否启用了更改跟踪,sql-server,sql-server-2008,Sql Server,Sql Server 2008,在运行alterdatabase命令启用更改跟踪之前,我正在尝试确定是否已对数据库启用更改跟踪。如果这些脚本运行多次,我将尝试防止出现错误 我签入了sys.databases和sys.dm\u tran\u commit\u table,但找不到我要查找的内容。您可以使用此查询: SELECT * FROM sys.change_tracking_databases WHERE database_id=DB_ID('MyDatabase') 非常感谢。我必须将OBJECT\u ID更改为D

在运行
alterdatabase
命令启用更改跟踪之前,我正在尝试确定是否已对数据库启用更改跟踪。如果这些脚本运行多次,我将尝试防止出现错误


我签入了
sys.databases
sys.dm\u tran\u commit\u table
,但找不到我要查找的内容。

您可以使用此查询:

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

非常感谢。我必须将
OBJECT\u ID
更改为
DB\u ID
,然后它就像一个符咒一样工作。因此我不熟悉更改跟踪,在搜索更改数据捕获(CDC)时发现了这个问题。对于碰巧在这里的其他人,CDC的等效问题/答案是
选择s.name作为Schema\u name,tb.name作为Table\u name,tb.object\u id,tb.type,tb.type\u desc,tb.is\u tracked\u by\u CDC FROM sys.tables tb internal JOIN sys.Schema s on s s s s s s s s s s s.Schema\u id=tb.Schema\u id,其中tb.is\u被\u CDC=1跟踪\u检查当前数据库,您可以从sys.change\u tracking\u databases WHERE database\u id=DB\u id()
(无参数)中使用
SELECT*来帮助其他人,如果需要启用/禁用此配置,您可以使用:ALTER database MyDatabaseName SET change\u tracking=ON