Корневая директория SQL сервера - PullRequest
1 голос
/ 20 июля 2010

Как я могу получить корневой каталог в SQL Server, используя SQL-запрос ???

Спасибо.

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

Предыдущее возвращает местоположение для клиента 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 правильно ищет в реестре переменную SQLDataRoot для запрашиваемого вами экземпляра SQL - путь, который вы видите вПриведенный выше запрос не совсем верный путь в реестре.XP заменяет MSSQLServer версией и именем экземпляра.Например, истинный ключ в моем экземпляре -

SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.Inst2\Setup

. В этом случае я использую SQL 2008 R2 (превращается в MSSQL10_50) с именем экземпляра Inst2.

1 голос
/ 20 июля 2010

Суть этого такова:

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]

Взято из здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...