SQL服务器根目录

时间:2010-07-20 11:40:43

标签: sql sql-server sql-server-2005

  

如何使用SQL查询在SQL Server中重用根目录?

感谢。

2 个答案:

答案 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