2011-03-13 55 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

如果您配置只使用服務器主機名作爲實例的默認實例

相關問題