SQL Server: как выбрать путь установки? - PullRequest
7 голосов
/ 03 февраля 2009

я знаю, что есть переменная, функция или хранимая процедура, которую вы можете использовать, чтобы найти путь, к которому установлен SQL Server:

например:.

c:\Program Files\Microsoft SQL Server\MSSQL.7\MSSQL

или

m:\CustomInstance\MSSQL

На самом деле, я надеюсь ВЫБЕРИТЕ путь резервного копирования по умолчанию. Но поскольку я сомневаюсь, что это существует, я просто добавлю \ BACKUP на путь установки и назову его достаточно близко.


Обновление Один

select filename from sysaltfiles
where name = db_name()

Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'sysaltfiles'.

select filename from master.dbo.sysaltfiles
where name = db_name()

filename
---------------- 

(0 row(s) affected)

Ответы [ 4 ]

11 голосов
/ 10 февраля 2009

Как выбрать путь установки

Примечание : xp_instance_regread не читает указанный раздел реестра, а вместо этого преобразует этот путь ключа в соответствующий путь для конкретного экземпляра SQL Server, который работает на. Другими словами: xp_regread терпит неудачу там, где xp_instance_regread успешно.

Каталог установки SQL Server

declare @rc int, @dir nvarchar(4000) 

exec @rc = master.dbo.xp_instance_regread
      N'HKEY_LOCAL_MACHINE',
      N'Software\Microsoft\MSSQLServer\Setup',
      N'SQLPath', 
      @dir output, 'no_output'
select @dir AS InstallationDirectory

Каталог резервного копирования SQL Server

declare @rc int, @dir nvarchar(4000) 

exec @rc = master.dbo.xp_instance_regread
      N'HKEY_LOCAL_MACHINE',
      N'Software\Microsoft\MSSQLServer\MSSQLServer',
      N'BackupDirectory', 
      @dir output, 'no_output'
select @dir AS BackupDirectory

Функции расположения SQL Server 2000

1 голос
/ 03 февраля 2009

Выполните следующее, чтобы проверить реестр и найти соответствующий ключ.

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]
0 голосов
/ 03 июля 2012
CREATE FUNCTION Fn_sqlservertoolsdir()
returns NVARCHAR(4000)
AS
  BEGIN
      DECLARE @rc  INT,
              @dir NVARCHAR(4000),
              @key NVARCHAR(4000)

      SET @key = N'Software\Microsoft\Microsoft SQL Server\' + Replace(Cast(Serverproperty('ProductVersion') AS CHAR(2)), '.', '') + '0' + '\Tools\ClientSetup'

      EXEC @rc = master.dbo.Xp_regread
        N'HKEY_LOCAL_MACHINE',
        @key,
        N'Path',
        @dir output,
        'no_output'

      RETURN @dir
  END
0 голосов
/ 03 февраля 2009

что происходит, когда вы запускаете этот

select filename from sysaltfiles
where name = db_name()

измените db_name () на 'master', если вы хотите увидеть, где находится база данных master

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