Ответ 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
, это означает, что не настроен именованный экземпляр, тогда у вас есть два неисключительных параметра:
- Укажите
ServerName
для доступа к экземпляру по умолчанию
- или же - - Используйте Sql Server Configuration Manager → Собственный клиент SQL XX.Y Configuration → Псевдонимы, чтобы определить псевдоним. Например:
установит псевдонимInst1
для локального сервера SQL. Укажите(local)\Inst1,1433
для доступа к нему. Конечно, вместо(local)
вы также можете использовать имя_сервера.
ВАЖНО. После настройки псевдонима необходимо перезапустить службу SQL соответствующего экземпляра или перезагрузить компьютер, иначе он не будет доступен сразу. Если вы используете порт, отличный от порта по умолчанию 1433, вам может потребоваться открыть локальный брандмауэр, чтобы это работало.
Примечание. Если его нет в меню "Пуск", диспетчер конфигурации SQL Server можно найти в C:\Windows\System32. Найдите SqlServerManagerXX.msc (где XX - версия SQL, например, XX = 11 или XX = 13).