Как получить имя сервера и экземпляра в T-SQL: сценарии
Вы можете получить имя текущего экземпляра SQL Server, используя функцию SERVERPROPERTY с параметром ‘InstanceName’ :
Скопировать код
SELECT SERVERPROPERTY('InstanceName') AS InstanceName;
Этот запрос возвращает имя экземпляра или NULL , если у вас установлен экземпляр по умолчанию.
Чтобы узнать полное имя сервера или экземпляра, примените переменную @@SERVERNAME :
Скопировать код
SELECT @@SERVERNAME AS FullInstanceName;
Если вам необходимо узнать имя службы сервера, воспользуйтесь @@SERVICENAME :
Скопировать код
SELECT @@SERVICENAME AS ServiceName;
Это может быть особенно полезным при настройке группы постоянной доступности Always On.
Практическое применение в различных конфигурациях
Экземпляры по умолчанию и именованные экземпляры
Часто различить экземпляры SQL Server по умолчанию от именованных может быть не так просто, как кажется:
- Экземпляр по умолчанию: не имеет конкретного имени и работает на стандартном порту 1433.
- Именованный экземпляр: обладает своим уникальным именем.
Данный запрос позволяет определить, является ли перед вами именованный экземпляр или экземпляр по умолчанию:
Скопировать код
SELECT SERVERPROPERTY('InstanceName') AS InstanceName;
Работа с кластерами и группами высокой доступности
В условиях работы с кластером или в среде высокой доступности значение @@SERVERNAME может не всегда соответствовать активному узлу. В контексте группы Always On Availability Group может быть полезно использовать @@SERVICENAME :
Скопировать код
SELECT CASE WHEN SERVERPROPERTY('IsClustered') = 1 THEN 'Кластеризованный экземпляр' WHEN SERVERPROPERTY('IsHadrEnabled') = 1 THEN 'Группа Always On Availability Group' ELSE SERVERPROPERTY('InstanceName') END AS InstanceType;
Аспекты работы с различными версиями и необходимость доступа
Важно учитывать следующее прежде чем приступать к работе с этими запросами:
- Необходимо иметь соответствующие права доступа. Будте уверены, что ваши действия полностью законны.
- SQL Server постоянно обновляется, поэтому вам следует актуализировать свои скрипты с учетом новых версий.
Возможно, в будущем SQL Server будет предоставлять информацию об используемом порте:
Скопировать код
SELECT SERVERPROPERTY('InstanceName') AS InstanceName, SERVERPROPERTY('Port') AS InstancePort;
Визуализация
Представьте SQL Server как большой склад, наполненный коробками. Когда вы выполняете запрос:
Скопировать код
SELECT @@SERVERNAME AS InstanceName;
Вы получаете ответ, аналогичный тому, как если бы спросили своего коллегу на складе, куда поставить ту или иную коробку. Но здесь мы говорим о данных, а не о физических объектах.
Детальный обзор серверных деталей
Информация из реестра Windows
Имя экземпляра SQL Server хранится в реестре Windows:
Скопировать код
EXEC xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\MSSQLServer\Setup', 'SQLPath';
Для выполнения этого запроса необходимы права системного администратора. Не забывайте, что большая власть предполагает большую ответственность.
Извлечение деталей экземпляра сервера
Чтобы получить более подробную информацию о конкретном экземпляре SQL Server, выполните следующую инструкцию:
Скопировать код
SELECT @@SERVERNAME AS ServerName, SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('Edition') AS Edition, SERVERPROPERTY('MachineName') AS MachineName, SERVERPROPERTY('IsClustered') AS IsClustered, SERVERPROPERTY('IsHadrEnabled') AS IsHadrEnabled, SERVERPROPERTY('ServerName') AS OriginalServerName;
Использование командной строки (sqlcmd)
Почему ограничиваться SQL Server Management Studio, если вы можете взаимодействовать с SQL Server напрямую из командной строки?
Скопировать код
sqlcmd -S servername\instancename
Параметр -S задает имя сервера или экземпляра, к которому осуществляется подключение.
Полезные материалы
- SERVERPROPERTY (Transact-SQL) – SQL Server | Microsoft Docs — официальная документация по функции SERVERPROPERTY в T-SQL.
- Как узнать имя текущего экземпляра SQL Server – Stack Overflow — обсуждение использования @@SERVICENAME на Stack Overflow.
- SET vs SELECT при присваивании переменных в SQL Server — анализ различий между SET и SELECT при работе с переменными в T-SQL и использовании функций вроде SERVERPROPERTY.
- Утилита sqlcmd – SQL Server | Microsoft Docs — документация по утилите sqlcmd для взаимодействия с SQL Server из командной строки.
- Конфигурации экземпляров SQL Server — особенности настройки экземпляров SQL Server.
- Microsoft Q&A | Microsoft Docs — платформа для обмена знаниями по продуктам Microsoft, включая SQL Server.
Как найти имя сервера ms sql?
Установлены на разных рабочих компьютерах visual studio и ms sql server.
Не могу подконнектить БД к Вижуал студио.
В подключение ввожу IP сервера виндовс, но так понимаю что это не правильно и надо именно имя ms sql сервера. А вот как его найти?
- Вопрос задан более трёх лет назад
- 13679 просмотров
Комментировать
Решения вопроса 2
Макс Трофей @kapitoly Автор вопроса
Вопрос решен — вводила ip сервера верно, не подключалось из-за брандмауэра. После отключения все ок.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Developer, ex-admin
В современных версиях MS SQl кроме имени сервера есть еще понятие экземпляра SQL сервера. С учетом этого строка для подключения к MS SQL выглядит так:
\
Если экземпляра нет, а такое то же может быть, то его задавать не нужно.
На одном сервере может быть несколько экземпляров.
Имя экземпляра задается при установке MSSQL. Узнать его можно:
1.зайдя в настройки Служб Windows найдите там службу SQL Server в скобках будет указано имя экземпляр. Таких служб может быть несколько по одной на каждый экземпляр.
2.Зайдите в панели управления в настройки ODBC подключений, добавьте пользовательское подключение, выберите тип для SQL Server и дальше в мастере на первой, по моему, странице нужно будет указать сервер, если нажать на выпадающий список в этом пункте в списке будут перечислены все доступные экземпляры MS SQL. Этот список формируется динамически опросом сети.
3.есть и другие способы, но думаю этих будет достаточно.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Windows Server
- +2 ещё
Как разрешить доступ к MS SQL (named instance) серверу за WIndows Firewall?
- 4 подписчика
- вчера
- 1003 просмотра
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode
Как узнать имя сервера Microsoft SQL Server
Для выполнения запросов к локальной базе данных Microsoft SQL Server из программы необходимо знать имя экземпляра сервера. Из статьи вы узнаете, как его получить.
Способ первый. Самый надежный
В Microsoft SQL Server предусмотрен специальный SQL запрос, возвращающий имя экземпляра сервера:
Transact-SQL
select @ @ servername
Выполнив данный запрос, например, в SQL Server Management Studio, вы получите имя вашего экземпляра сервера.
В данном случае было возвращено имя установленного экземпляра Microsoft SQL Server равное: SQLEXPRESS.
Способ второй
Другим способом получения имени SQL-сервера является поиск записи службы SQL Server.
Запустите классическое приложение Windows «Службы» на вашем компьютере и найдите в списке служб объект SQL Server.
В скобках будет указано имя экземпляра.
В этом же меню можно остановить, запустить и перезапустить экземпляр установленного Microsoft SQL Server.
Стоит отметить, что второй способ получения имени сервера — менее достоверен. В скобках не всегда указано истинное имя сервера, пригодное для обращения к нему при подключении. Поэтому при наличии возможности лучше всего использовать первый способ получения имени с помощью SQL-запроса.
Урок 1. Соединение с ядром СУБД
При установке ядро СУБД SQL Server установленные средства зависят от выпуска и выбора настроек. На этом занятии рассматриваются основные инструменты и показано, как подключиться и выполнить важную функцию (авторизацию большего количество пользователей).
Это занятие содержит следующие задачи.
- Средства для начала работы
- Подключение с помощью среды Management Studio
- Авторизация дополнительных подключений
Средства для начала работы
- Sql Server ядро СУБД поставляется с различными инструментами. В этой статье описываются первые необходимые инструменты и вы можете выбрать подходящее средство для задания. Все средства доступны из меню Пуск . Некоторые средства, например SQL Server Management Studio (SSMS), не устанавливаются по умолчанию. Выберите нужные средства во время установки. Чтобы получить полное описание приведенных ниже средств, выполните поиск по ним в электронной документации по SQL Server. SQL Server Express содержит только подмножество средств.
Общие инструменты
В следующей таблице описаны некоторые из наиболее распространенных клиентских средств.
Средство клиента | Тип | Операционная система |
---|---|---|
SQL Server Management Studio (SSMS) | Графический пользовательский интерфейс | Windows |
Azure Data Studio | Графический пользовательский интерфейс | Windows, macOS, Linux |
bcp | CLI | Windows, macOS, Linux |
sqlcmd | CLI | Windows, macOS, Linux |
В этой статье мы сосредоточимся на подключении через SSMS. Если вы хотите подключиться через Azure Data Studio, см . краткое руководство. Использование Azure Data Studio для подключения и запроса SQL Server.
Пример базы данных
В этой статье требуется AdventureWorks2022 пример базы данных, которую можно скачать на домашней странице примеров и проектов сообщества Microsoft SQL Server.
SQL Server Management Studio (только Для Windows)
- В текущих версиях Windows в меню Пуск введите «SSMS», а затем выберите Microsoft SQL Server Management Studio.
- При использовании более старых версий Windows в меню «Пуск» наведите указатель на все программы, наведите указатель на Microsoft SQL Server и выберите SQL Server Management Studio.
Подключение с помощью SSMS
- Легко подключиться к ядро СУБД из средств, работающих на том же компьютере, если вы знаете имя экземпляра и если вы подключаетесь в качестве члена локальной группы Администратор istrators на компьютере. Следующие процедуры должны выполняться на том же компьютере, на котором размещается SQL Server.
В этом разделе рассматривается подключение к локальному экземпляру SQL Server. Сведения о База данных SQL Azure см. в Подключение База данных SQL Azure.
Определение имени экземпляра ядро СУБД
- Войдите в Windows в качестве члена группы Администратор istrators и откройте Management Studio.
- В диалоговом окне Подключение к серверу нажмите кнопку Отмена.
- Если компонент «Зарегистрированные серверы» не отображается, в меню Вид выберите пункт Зарегистрированные серверы.
- Выбрав компонент Ядро СУБД на панели инструментов «Зарегистрированные серверы», разверните компонент Ядро СУБД, щелкните правой кнопкой мыши пункт Группы локальных серверов, наведите указатель на пункт Задачии выберите пункт Зарегистрировать локальные серверы. Разверните локальные группы серверов, чтобы просмотреть все экземпляры ядро СУБД, установленные на компьютере. Экземпляр по умолчанию безымянный и отображается как имя компьютера. Именованный экземпляр отображается как имя компьютера, за которым следует обратная косая черта (\), а затем имя экземпляра. Для SQL Server Express экземпляр называется \sqlexpress, если имя не было изменено во время установки.
Убедитесь, что запущена ядро СУБД
- В зарегистрированных серверах, если имя экземпляра SQL Server имеет зеленую точку со белой стрелкой рядом с именем, ядро СУБД выполняется, и никаких дальнейших действий не требуется.
- Если имя экземпляра SQL Server имеет красную точку с белым квадратом рядом с именем, ядро СУБД останавливается. Щелкните правой кнопкой мыши имя ядро СУБД, выберите элемент управления службой и нажмите кнопку «Пуск«. После диалогового окна подтверждения ядро СУБД должен начинаться, а круг должен быть зеленым с белой стрелкой.
Подключение к ядру СУБД
При установке SQL Server выбрана по крайней мере одна учетная запись администратора. Выполнив вход в Windows с правами администратора, выполните указанные ниже действия.
- В Management Studio в меню «Файл» выберите Подключение обозреватель объектов.
- Будет открыто диалоговое окно Соединение с сервером . В поле Тип сервера отобразится тип компонента, использованный в прошлой сессии.
- Выберите Ядро СУБД.
- В поле Имя сервера введите имя экземпляра ядра СУБД. В экземпляре SQL Server по умолчанию имя сервера совпадает с именем компьютера. Имя сервера именованного экземпляра SQL Server — это computer_name instance_name\>>, например ACCTG_SRVR\SQLEXPRESS.< На следующем снимке экрана показано подключение к экземпляру SQL Server по умолчанию (без имени) на компьютере с именем PracticeComputer . В Windows вошел пользователь Mary из домена Contoso. При использовании проверки подлинности Windows нельзя изменить имя пользователя.
- Нажмите Подключиться.
В этом учебнике предполагается, что вы не знакомы с SQL Server и у вас нет проблем с подключением. Подробные инструкции по устранению неполадок см. в разделе Устранение неполадок при соединении с компонентом SQL Server Database Engine.
Авторизация дополнительных подключений
Теперь, когда вы подключились к SQL Server от имени администратора, одна из первых задач позволяет другим пользователям подключаться. Это делается посредством создания имени входа и предоставления ему разрешения на доступ к базе данных в качестве пользователя. Имена входа можно создавать с помощью проверка подлинности Windows, проверки подлинности SQL или проверки подлинности Microsoft Entra. проверка подлинности Windows имена входа используют учетные данные из Windows. Имена входа проверки подлинности SQL хранят сведения о проверке подлинности в SQL Server и не зависят от учетных данных Windows. Имена входа из идентификатора Microsoft Entra (ранее Azure Active Directory) используют учетные данные из облачных удостоверений. Дополнительные сведения об этом методе см. в следующей статье. Использование проверки подлинности Microsoft Entra.
По возможности используйте проверку подлинности Windows.
В большинстве организаций пользователи входят в домены, и используется проверка подлинности Windows. Вы можете экспериментировать, создав на компьютере дополнительных локальных пользователей. Компьютер будет проходить проверку подлинности локальных пользователей, поэтому домен — это имя компьютера. Например, если компьютер называется MyComputer и вы создаете пользователя с именем Test , то описание Windows для пользователя . Mycomputer\Test
Создание имени входа для проверки подлинности Windows
- В предыдущей задаче вы подключились к ядро СУБД с помощью Management Studio. В обозревателе объектов разверните экземпляр своего сервера, затем узел Безопасность, щелкните правой кнопкой мыши Имена входаи выберите пункт Создать имя входа. Откроется диалоговое окно Создание имени входа .
- На странице Общие в поле Имя входа введите имя входа Windows в следующем формате: \
- В поле База данных по умолчанию выберите базу данных AdventureWorks (если она доступна). В противном случае выберите master базу данных.
- На странице ролей сервера, если новое имя входа должно быть администратором, выберите sysadmin. В противном случае оставьте это поле пустым.
- На странице Сопоставление пользователей выберите Сопоставление для базы данных AdventureWorks2022 (если она доступна). В противном случае выберите master . В поле Пользователь уже внесено имя входа. При закрытии диалоговое окно создает этого пользователя в базе данных.
- В поле Схема по умолчанию введите dbo , чтобы сопоставить имя входа со схемой владельца базы данных.
- Подтвердите настройки по умолчанию для полей Защищаемые объекты и Состояние и нажмите кнопку ОК, чтобы создать имя входа.
Это базовые сведения, позволяющие начать работу. SQL Server предоставляет многофункциональную среду безопасности.
Связанный контент
- Диалоговое окно «Подключение к SQL Server»
- Устранение неполадок при соединении с SQL Server Database Engine
- Краткое руководство. Подключение и запрос базы данных SQL Azure с помощью SSMS
- Краткое руководство. Подключение и запрос базы данных SQL Azure с помощью Azure Data Studio