Как подключиться к экземпляру SQL Server по умолчанию, если требуется параметр «именованный экземпляр»? - PullRequest
11 голосов
/ 13 марта 2011

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

Целевым сервером SQL являетсяверсия 2008R2

Я надеюсь, что есть чистый взлом, который я могу использовать, например, "."или "по умолчанию", но я еще не угадал.Я также пробовал MSSQLSERVER, но это тоже не сработало.

Ответы [ 5 ]

9 голосов
/ 13 марта 2011

Запустите этот запрос:

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

и используйте результат в качестве имени вашего экземпляра.

3 голосов
/ 25 октября 2013

Если у вас настроен экземпляр по умолчанию, просто используйте имя хоста сервера в качестве экземпляра

2 голосов
/ 15 сентября 2017

Все экземпляры сервера SQL хранятся в реестре Windows. Вы можете запросить реестр с помощью инструмента Windows C:\Windows\System32\Regedt32.exe и просматривать / искать там, вы можете сделать это с помощью языка, например C # (см. Пример 1 там) или даже T-SQL (также известный как Transact-SQL).

В этом ответе я покажу вам, как это сделатьэто с T-SQL .Используйте этот скрипт, который я нашел здесь , чтобы определить ServerName, InstanceName, HostName и PortNumber:

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\'+@@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

Если InstanceName равен null, это означает, что нет именованныхэкземпляр настроен, тогда у вас есть две неисключительные опции:

  1. Укажите ServerName для доступа к экземпляру по умолчанию - или -
  2. Используйте Sql Server Configuration Manager -> Собственный клиент SQL XX.Y Конфигурация -> Псевдонимы , чтобы определить псевдоним.Например:Define_Aliasустановит псевдоним Inst1 для локального сервера SQL.Укажите (local)\Inst1,1433 для доступа к нему.Конечно, вместо (local) вы также можете использовать имя_сервера. ВАЖНО: После настройки псевдонима необходимо перезапустить службу SQL связанного экземпляра или перезагрузить компьютер, иначе он не будет доступен сразу.Если вы используете порт, отличный от порта по умолчанию 1433, вам может потребоваться открыть локальный брандмауэр, чтобы это работало.

Примечание: Еслиу вас его нет в меню «Пуск», диспетчер конфигурации SQL Server можно найти в C: \ Windows \ System32.Найдите SqlServerManagerXX.msc (где XX - версия SQL, например, XX = 11 или XX = 13).

0 голосов
/ 13 марта 2011

Мастер установки примет MSSQLSERVER, что означает экземпляр «по умолчанию».

См. Шаг 12 на странице MSDN

0 голосов
/ 13 марта 2011

Попробуйте MSSQLSERVER.Это может быть имя экземпляра по умолчанию в соответствии с этой страницей MSDN .

...