2011-09-08 66 views

回答

2

從運行SQL Server Profiler和跟蹤調用,這是SSMS所做的。

declare @NumErrorLogs int 
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', 
          N'Software\Microsoft\MSSQLServer\MSSQLServer', 
          N'NumErrorLogs', 
          @NumErrorLogs OUTPUT 
SELECT @NumErrorLogs 
2

SQL錯誤日誌文件設置的號碼爲 「[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ Microsoft SQL Server的\ MSSQL10_50.SQLEXPRESS_ADV \的MSSQLServer] \ NumErrorLogs」

存儲在Windows註冊表中它可以是使用以下sql(從sql分析器)檢索。

use master 
    declare @HkeyLocal nvarchar(18) 
    declare @MSSqlServerRegPath nvarchar(31) 
    declare @InstanceRegPath sysname 
    select @HkeyLocal=N'HKEY_LOCAL_MACHINE' 
    select @MSSqlServerRegPath=N'SOFTWARE\Microsoft\MSSQLServer' 
    select @[email protected] + N'\MSSQLServer' 
    declare @NumErrorLogs int 
    exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'NumErrorLogs', @NumErrorLogs OUTPUT 
    SELECT 
    ISNULL(@NumErrorLogs, -1) AS [NumberOfLogFiles] 
+0

是否可以在不使用任何註冊表鍵的情況下進行檢索? – John

+0

該值存儲在註冊表中。請參閱編輯註冊表路徑的答案。 – JimSTAT

+0

這個伎倆!謝謝! – PseudoToad