如何使用SQL查询在SQL Server中重用根目录?
感谢。
答案 0 :(得分:3)
前一个是返回SQL客户端的位置,这不是你想要的。以下适用于SQL 2005,2008和2008 R2。
declare @SQLDataRoot varchar(256)
exec master..xp_instance_regread
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\MSSQLServer\Setup',
@value_name='SQLDataRoot',
@value=@SQLDataRoot output
未记录的xp_instance_regread在注册表中正确查找以获取您正在查询的SQL实例的SQLDataRoot变量 - 您在上述查询中看到的路径并不是注册表中的真实路径。 XP用版本和实例名称替换MSSQLServer。例如,我的实例上的真正键是
SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.Inst2\Setup
在这种情况下,我运行SQL 2008 R2(转为MSSQL10_50),实例名称为Inst2。
答案 1 :(得分:1)
它的主旨是:
Code Snippet
Declare @Path as varchar(100);
Set @Path = NULL
Exec master..xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Microsoft SQL Server\70\Tools\ClientSetup', 'SQLPath', @Path OUTPUT
Select @Path as [Sql Server 7.0 path]
Set @Path = NULL
Exec master..xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup', 'SQLPath', @Path OUTPUT
Select @Path as [Sql Server 2000 path]
Set @Path = NULL
Exec master..xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup', 'SQLPath', @Path OUTPUT
Select @Path as [Sql Server 2005 path]
Set @Path = NULL
Exec master..xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup', 'SQLPath', @Path OUTPUT
Select @Path as [Sql Server KATMAI path]
取自here