例如
mssql2005中的D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
mssql2000中的C:\Program Files\Microsoft SQL Server\MSSQL\LOG
mssql2005中的D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
mssql2000中的C:\Program Files\Microsoft SQL Server\MSSQL\LOG
use masterselect filename from sysaltfiles
----------mssql2005默认实例的安装路径---------------
DECLARE
@re varchar(260);
EXEC master.sys.xp_regread
N'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup',
N'SQLPath',
@re OUTPUT
SELECT @re;----------mssql2000默认实例的安装路径---------------
DECLARE
@re varchar(260);
EXEC master.dbo.xp_regread
N'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Setup',
N'SQLPath',
@re OUTPUT
SELECT @re;找了2个通过查注册表的方法来获得数据库安装路径的方法,和大家一起分享下。
用这个目录增加一层LOG就获得了我要的目录了,初步准备这样实现了,不知道有没有隐藏问题。
----------mssql2005默认实例的LOG目录路径---------------
DECLARE
@re varchar(260);
EXEC master.sys.xp_regread
N'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\CPE',
N'ErrorDumpDir',
@re OUTPUT
SELECT @re;输出:D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\
----------mssql2000默认实例的ERRORLOG路径---------------
DECLARE
@re varchar(260);
EXEC master.dbo.xp_regread
N'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\Parameters',
N'SQLArg1',
@re OUTPUT
SELECT @re;输出:-eC:\Program Files\Microsoft SQL Server\MSSQL\log\ERRORLOG改进了下通过注册表获得LOG目录的方式。
较高的系统。如果是SQL Server 2000之后的版本。可以用下面的方法:
SELECT LEFT(name,LEN(name) - 17) + N'LOG'
FROM sys.dm_os_loaded_modules
WHERE description = N'SQL Server Windows NT'