以前寫過一篇博文「MS SQL 日誌記錄管理」,裡面介紹如何設定SQL Server的錯誤日誌的最大歸檔數量,如果在SSMS的UI介面設置,可以從“Management” -> "SQL Server Logs" 右鍵點選選項「Configure" 去設定錯誤日誌的個數,如下圖:
如果裡使用腳本設置,如下所示,這個腳本也能實現修改最大錯誤日誌數量的功能
USE [master];GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD,
10;
GO
以SQL Server 2008為例(預設實例),登錄機碼##HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer 下是沒有這個參數NumErrorLogs的,這個參數實際位於 #HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer下面;
以SQL Server 2014為例(預設實例),登錄機碼 ##HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer 下是沒有這個參數NumErrorLogs的,這個參數實際上位於# HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer下面;
#命名實例,註冊表路徑還是有所差別,但是上面預存程序使用上面參數(同一參數)都能修改到註冊表NumErrorLogs#參數,原本為N'HKEY_LOCAL_MACHINE' 和N'Software\Microsoft\MSSQLServer\MSSQLServer'的值組合是參數在登錄中具體路徑,但是實際驗證發現不是這麼一回事,另外由於master.sys.xp_instanc## e_regwrite是一個沒有文件的預存程序,所以不知道它內部是如何處理的,也就是說不知是其內部做了轉換還是其它原因。這個讓人相當困惑、不解的問題。
#
############# ########## ##
以上是關於SQL設定註冊表的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!