Как подключиться к экземпляру SQL Server по умолчанию, если требуется параметр "именованный экземпляр"?

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

Целевой SQL Server - версия 2008R2

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

Ответ 1

Все экземпляры сервера SQL хранятся в реестре Windows. Вы можете запросить реестр с помощью средства Windows C:\Windows\System32\Regedt32.exe и просмотреть/выполнить поиск там, вы можете сделать это с помощью языка, такого как С# (см. Пример 1) или даже T-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\'[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

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

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

    ВАЖНО. После настройки псевдонима необходимо перезапустить службу SQL соответствующего экземпляра или перезагрузить компьютер, иначе он не будет доступен сразу. Если вы используете порт, отличный от порта по умолчанию 1433, вам может потребоваться открыть локальный брандмауэр, чтобы это работало.

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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