SQL Server 安裝後,使用者資料庫資料檔 (.mdf)、記錄檔 (.ldf) 及備份檔的預設路徑寫在登錄機碼中。本文提供 SQL Server 2005 與 2008 (含具名實例) 查詢與修改這三個路徑的現成 T-SQL 腳本,透過 xp_regread/xp_regwrite 直接操作登錄,免用管理工具點點點。
-- 資料檔預設路徑
DECLARE @DefaultData VARCHAR(100);
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'DefaultData',
@DefaultData = @DefaultData OUTPUT;
SELECT @DefaultData AS DefaultDataPath;
-- 記錄檔預設路徑
DECLARE @DefaultLog VARCHAR(100);
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'DefaultLog',
@DefaultLog = @DefaultLog OUTPUT;
SELECT @DefaultLog AS DefaultLogPath;
-- 備份檔預設路徑
DECLARE @BackupDirectory VARCHAR(100);
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'BackupDirectory',
@BackupDirectory = @BackupDirectory OUTPUT;
SELECT @BackupDirectory AS BackupDirectoryPath;
-- 修改資料檔路徑
EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'DefaultData',
@type = 'REG_SZ',
@value = 'D:\SQL2005\Data';
-- 修改記錄檔路徑
EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'DefaultLog',
@type = 'REG_SZ',
@value = 'D:\SQL2005\Log';
-- 修改備份路徑
EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name = 'BackupDirectory',
@type = 'REG_SZ',
@value = 'D:\SQL2005\DBBak';
登錄路徑關鍵差異:MSSQL10.<InstanceName>。
DECLARE @DefaultData VARCHAR(100);
EXEC master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL10.SQL2008\MSSQLServer',
@value_name = 'DefaultData',
@DefaultData = @DefaultData OUTPUT;
SELECT @DefaultData;
-- DefaultLog、BackupDirectory 同理,只換 @value_name
EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'Software\Microsoft\Microsoft SQL Server\MSSQL10.SQL2008\MSSQLServer',
@value_name = 'DefaultData',
@type = 'REG_SZ',
@value = 'D:\SQL2008\Data';
-- DefaultLog、BackupDirectory 同理
regedit 確認實際機碼路徑 (如 MSSQL.1、MSSQL10.MSSQLSERVER、MSSQL10.SQL2008)。xp_regread/write 需 sysadmin 固定伺服器角色權限。ServerProperty('InstanceDefaultDataPath') 等屬性或 SSMS 伺服器屬性介面修改,不再建議直接改登錄。