2011-03-13 27 views
10

我正在安装一些软件,我需要告诉它使用SQL Server的默认实例,但是Installshield GUI坚持认为我输入了指定实例的信息。如果需要“命名实例”参数,如何连接到SQL Server的默认实例?

目标的SQL Server 2008R2是版本

我希望有一个干净的黑客,我可以使用诸如“”或“默认”,但我还没有猜到它。我也尝试过MSSQLSERVER,但这也不起作用。

+0

问题是旧的,但我想现在我有一个答案给你! (请参阅** [这里](https://stackoverflow.com/a/46238551/1016343)**) – Matt 2017-09-15 11:53:56

回答

1

使用这个剧本,我发现here,确定服务器名,实例名,主机名和端口号:

set nocount on 
Declare @key Varchar(100), @PortNumber varchar(20) 

if charindex('\',CONVERT(char(20), SERVERPROPERTY('servername')),0) <>0 begin 
    set @key = 'SOFTWARE\MICROSOFT\Microsoft SQL Server\'[email protected]@servicename+'\MSSQLServer\Supersocketnetlib\TCP' 
end else begin 
    set @key = 'SOFTWARE\MICROSOFT\MSSQLServer\MSSQLServer\Supersocketnetlib\TCP' 
end 

EXEC master..xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = @key, 
    @value_name = 'Tcpport', @value = @PortNumber OUTPUT 
SELECT CONVERT(char(20), SERVERPROPERTY('servername')) ServerName, 
     CONVERT(char(20), SERVERPROPERTY('InstanceName')) InstanceName, 
     CONVERT(char(20), SERVERPROPERTY('MachineName')) as HostName, 
     convert(varchar(10), @PortNumber) PortNumber 

如果InstanceNamenull,这意味着没有配置命名实例,则有两种,非排他性的选择:

  1. 指定ServerName访问默认实例
    - 或 -
  2. 使用SQL Server配置管理器 - > SQL Native Client的XX.Y配置 - >别名定义别名。例如:
    Define_Alias
    将为本地SQL服务器设置别名Inst1。指定(local)\Inst1,1433来访问它。当然,您也可以使用ServerName代替(local)

    重要提示:设置别名后,您需要重新启动相关实例的SQL服务或重新启动您的PC,否则将无法立即访问。如果您使用的是默认端口1433以外的端口,则可能需要打开本地防火墙才能正常工作。

注:如果没有它在开始菜单中,SQL Server配置管理器,可以在C:\ Windows \ System32下。查找SqlServerManagerXX.msc(其中XX是SQL版本,例如XX = 11或XX = 13)。

0

尝试MSSQLSERVER。这可能是根据this MSDN page的默认实例名称。

8

运行此查询:

SELECT @@SERVERNAME + '\' + @@SERVICENAME AS InstanceName 

,并使用结果作为你的实例名。

+0

我试图通过SSMS连接到默认的SQL Server实例,但它不起作用。如果我只是简单地尝试'.'或''就行了。查询'SELECT @@ SERVICENAME AS InstanceName'返回'MSSQLSERVER'。 ' \ MSSQLSERVER'不起作用 – RBT 2016-09-28 09:58:18

+1

对于默认实例,该命名法甚至在代码中也不起作用。它必须是“。”或“”。 – RBT 2016-09-29 06:09:13

+0

以这种方式创建的实例名称不正确,如果没有指定实例名称并且服务器上只有一个默认实例。 – Matt 2017-09-15 11:27:39

0

安装向导将采用MSSQLSERVER这意味着“默认”实例。

见步骤12中MSDN page

3

如果您配置只使用服务器主机名作为实例的默认实例

相关问题