可能是一个快速的问题。
我们希望在我们的环境中测试几个跟踪标志作为启动参数,虽然我知道我们可以DBCC TRACESTATUS
用来获取全局范围的跟踪标志,但它没有指定这是在启动时设置还是仅使用 -1 设置旗帜。解析 SQL 错误日志是唯一可用的方法吗?可能是某个地方的注册表项?
任何可以以编程方式解决的方法都是有用的。
谢谢阅读!
如果您运行的是SQL Server 2008 R2 SP1 及更高版本,则可以查询sys.dm_server_registry
以找出在启动时启用的 TRACE FLAGS。
select * from sys.dm_server_registry
where
cast(value_data as varchar(max)) like '%-T%'
Run Code Online (Sandbox Code Playgroud)
以防万一如果您或未来的访问者需要在一行中输出,您可以使用以下 T-SQL :
select distinct @@SERVERNAME as SERVER_NAME
,replace(STUFF((
select ' ' + cast(value_data as varchar(max))
from sys.dm_server_registry
where cast(value_data as varchar(max)) like '%-T%'
for xml PATH('') -- select it as XML
), 1, 1, ' ') -- This will remove the first character ";" from the result
, '�', '') -- This will remove the "�" else you will get -traceFlag�
as TRACE_FLAGS_ENABLED_AT_STARTUP
from sys.dm_server_registry
where cast(value_data as varchar(max)) like '%-T%'
Run Code Online (Sandbox Code Playgroud)