Self-Learning – видеокурсы и книги по IT

Приветствую всех посетителей сайта Self-Learning.ru! Сегодня мы с Вами рассмотрим несколько способов определения имени экземпляра Microsoft SQL Server на языке T-SQL, а также с использованием других программных средств.

Как узнать имя экземпляра Microsoft SQL Server на T-SQL

Способы определения имени экземпляра Microsoft SQL Server

Существует несколько способов узнать, какое имя экземпляра у SQL Server. Мы рассмотрим способы, которые подразумевают обращение к определенным системным функциям на языке T-SQL, а также способ, с помощью которого мы можем узнать имена всех экземпляров SQL Server, которые установлены на конкретном сервере.

Заметка! Типы функций в языке T-SQL.

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

Таким образом, для того чтобы определить имя экземпляра Microsoft SQL Server, Вы можете использовать тот способ, который будет удобнее в Вашем конкретном случае.

Способ 1 – функция @@SERVERNAME

Первый способ предполагает использование системной функции @@SERVERNAME, которая возвращает имя локального сервера, на котором работает SQL Server.

Функция @@SERVERNAME возвращает следующие данные:

Исходные данныеДанные, которые возвращает функция
Если используется экземпляр по умолчанию«Имя_сервера»
Если используется именованный экземпляр«Имя_сервера\Имя_экземпляра»
Если используется экземпляр по умолчанию отказоустойчивого кластера«Сетевое_имя_экземпляра_отказоустойчивого кластера_windows_server»
Если используется именованный экземпляр отказоустойчивого кластера«Сетевое_имя_экземпляра_отказоустойчивого кластера_windows_server\имя_экземпляра»

Пример использования функции

SELECT @@SERVERNAME AS SERVERNAME;

Скриншот 1

В моем случае используется именованный экземпляр Microsoft SQL Server, поэтому функция вернула соответствующие данные, где SQLEXPRESS и есть имя экземпляра SQL Server.

Заметка! Установка Microsoft SQL Server в редакции Express.

Способ 2 – функция @@SERVICENAME

Второй способ определения имени экземпляра Microsoft SQL Server предполагает использование функции @@SERVICENAME, которая возвращает имя раздела реестра, согласно которому запущен SQL Server.

Если текущий экземпляр является экземпляром по умолчанию, то данная функция возвращает «MSSQLSERVER», однако если же текущий экземпляр является именованным экземпляром, то эта функция возвращает имя этого экземпляра.

Пример использования функции

SELECT @@SERVICENAME AS SERVICENAME;

Скриншот 2

В данном случае, так как у меня именованный экземпляр, функция @@SERVICENAME вернула имя экземпляра.

Способ 3 – функция SERVERPROPERTY

Следующий способ определения имени экземпляра SQL Server предполагает использование системной функции SERVERPROPERTY, которая возвращает много различных сведений о свойствах экземпляра Microsoft SQL Server.

Данная функция принимает один параметр, и если мы передадим значение «InstanceName», то она нам вернет имя экземпляра.

Однако здесь стоит учитывать, что если используется экземпляр по умолчанию, то функция вернет NULL.

Пример использования функции

SELECT SERVERPROPERTY ('InstanceName') AS SERVERPROPERTY;

Скриншот 3

У меня именованный экземпляр, поэтому функция вернула имя экземпляра.

Заметка! Как узнать версию Microsoft SQL Server на T-SQL.

Способ 4 – процедура xp_regread

Если Вам необходимо узнать имена всех экземпляров SQL Server, которые установлены на конкретном сервере, то для этого Вы можете использовать системную хранимую процедуру xp_regread, которая умеет считывать параметры реестра Windows, в котором как раз и можно найти всю интересующую нас информацию об экземплярах Microsoft SQL Server.

Процедура принимает три параметра: в первом мы указываем название раздела реестра, во втором – путь к нужной нам ветке реестра, и третий – параметр, значение которого нам нужно считать.

Пример использования процедуры

DECLARE @SQLServerInstances TABLE(
                                  LineNumber NVARCHAR(100),
                                  InstanceName NVARCHAR(100),
                                  Data NVARCHAR(100) NULL
                                 );

INSERT INTO @SQLServerInstances
  EXECUTE xp_regread @rootkey = 'HKEY_LOCAL_MACHINE',
                     @key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
                     @value_name = 'InstalledInstances';

SELECT LineNumber, InstanceName
FROM @SQLServerInstances;

Скриншот 4

У меня установлен только один экземпляр, поэтому инструкция вернула одну строку данных.

Заметка! Конкатенация строк в T-SQL.

Как узнать имя экземпляра Microsoft SQL Server на PowerShell

Способ предполагает простое считывание названия службы Microsoft SQL Server, т.е. мы с помощью определенной инструкции на PowerShell ищем название службы по префиксу «MSSQL$» (данный префикс имеет «Имя службы, а не «Отображаемое имя службы»).

Пример инструкции на PowerShell

Get-WMIObject Win32_Service -Filter "name like 'MSSQL$%'" | % {$_.name.substring(6)}

Скриншот 5

Кроме этого, узнать имя экземпляра Microsoft SQL Server можно, если зайти в оснастку «Службы» в Windows и посмотреть, какое имя указано в названии службы SQL Server.

Заметка! Курсы по T-SQL для начинающих.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Мы в соцсетях
Следите за выходом новых статей в наших группах в социальных сетях: Подписывайтесь, и Вы не пропустите выход нового материала!
Теги: #
Понравилась статья? Поделитесь с друзьями:
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Tumblr
Tumblr
Share on Reddit
Reddit
Email this to someone
email

Авторские онлайн-курсы по T-SQL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх