SQL Server:如何选择安装路径?

SQL Server:如何选择安装路径?,sql,sql-server,Sql,Sql Server,我知道有一个变量、函数或存储过程可用于查找SQL Server的安装路径: e、 g: 或 实际上,我希望选择默认备份路径。但是,由于我怀疑它是否存在,所以我将把\BACKUP添加到安装路径上,并称之为足够接近 更新一 当你运行这个程序时会发生什么 select filename from sysaltfiles where name = db_name() 如果要查看主数据库所在的位置,请将db_name()更改为“master”执行以下操作以检查注册表,以找到相应的键 Declare

我知道有一个变量、函数或存储过程可用于查找SQL Server的安装路径:

e、 g:


实际上,我希望选择默认备份路径。但是,由于我怀疑它是否存在,所以我将把\BACKUP添加到安装路径上,并称之为足够接近


更新一

当你运行这个程序时会发生什么

select filename from sysaltfiles
where name = db_name()

如果要查看主数据库所在的位置,请将db_name()更改为“master”

执行以下操作以检查注册表,以找到相应的键

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]
如何选择安装路径 注意xp\u instance\u regrad不会读取您指定的注册表项,而是将该注册表项路径转换为您正在运行的特定SQL Server实例的适当路径。换句话说:xp\u重磨xp\u实例重磨成功时失败

SQL Server安装目录 SQL Server备份目录

这需要知道您当前正在与哪个版本的SQL Server交谈;xp\u实例\u regread+SERVERPROPERTY('ProductVersion')解决了一个问题,即它没有返回正确的内容:“c:\Program Files\Microsoft SQL Server\80\Tools”与“c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL”没有返回任何内容。将结果添加到OPThis中真是太棒了。很好的问题和答案。您缺少“END”,所以我添加了它,格式化了代码,并将其放入代码块中。
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)
select filename from sysaltfiles
where name = db_name()
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]
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
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
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