- Как узнать имя экземпляра Microsoft SQL Server на T-SQL
- Способы определения имени экземпляра Microsoft SQL Server
- Способ 1 – функция @@SERVERNAME
- Способ 2 – функция @@SERVICENAME
- Способ 3 – функция SERVERPROPERTY
- Способ 4 – процедура xp_regread
- Как узнать имя экземпляра Microsoft SQL Server на PowerShell
- Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server
- Общие файлы для всех экземпляров SQL Server
- Расположение файлов и сопоставление данных реестра
- Указание путей к файлам
- Как определить установленные экземпляры SQL Server и их версии?
- 18 ответов
- Краткое руководство. Подключение к экземпляру SQL Server и выполнение запросов с помощью SQL Server Management Studio (SSMS)
- Предварительные условия
- Подключение к экземпляру SQL Server
- Устранение проблем подключения
- Создание базы данных
- Создание таблицы в новой базе данных
- Вставка строк в новую таблицу
- Запрос к таблице и просмотр результатов
- Проверка свойств подключения с помощью таблицы окна запросов
- Дополнительные средства
- Дальнейшие действия
Как узнать имя экземпляра Microsoft SQL Server на T-SQL
Всем привет! Сегодня мы с Вами рассмотрим несколько способов определения имени экземпляра Microsoft SQL Server на языке T-SQL, а также с использованием других программных средств.
Способы определения имени экземпляра Microsoft SQL Server
Существует несколько способов узнать, какое имя экземпляра у SQL Server. Мы рассмотрим способы, которые подразумевают обращение к определенным системным функциям на языке T-SQL, а также способ, с помощью которого мы можем узнать имена всех экземпляров SQL Server, которые установлены на конкретном сервере.
Кроме этого я покажу способ определения имени экземпляра SQL Server без выполнения SQL инструкций, например, для случаев, когда нет возможности подключиться к SQL Server. Данный способ предполагает выполнение определённой инструкции на языке PowerShell.
Таким образом, для того чтобы определить имя экземпляра Microsoft SQL Server, Вы можете использовать тот способ, который будет удобнее в Вашем конкретном случае.
Способ 1 – функция @@SERVERNAME
Первый способ предполагает использование системной функции @@SERVERNAME, которая возвращает имя локального сервера, на котором работает SQL Server.
Функция @@SERVERNAME возвращает следующие данные:
Исходные данные | Данные, которые возвращает функция |
Если используется экземпляр по умолчанию | «Имя_сервера» |
Если используется именованный экземпляр | «Имя_сервера\Имя_экземпляра» |
Если используется экземпляр по умолчанию отказоустойчивого кластера | «Сетевое_имя_экземпляра_отказоустойчивого_ кластера_windows_server» |
Если используется именованный экземпляр отказоустойчивого кластера | «Сетевое_имя_экземпляра_отказоустойчивого_ кластера_windows_server\имя_экземпляра» |
Пример использования функции
В моем случае используется именованный экземпляр Microsoft SQL Server, поэтому функция вернула соответствующие данные, где SQLEXPRESS и есть имя экземпляра SQL Server.
Способ 2 – функция @@SERVICENAME
Второй способ определения имени экземпляра Microsoft SQL Server предполагает использование функции @@SERVICENAME, которая возвращает имя раздела реестра, согласно которому запущен SQL Server.
Если текущий экземпляр является экземпляром по умолчанию, то данная функция возвращает «MSSQLSERVER», однако если же текущий экземпляр является именованным экземпляром, то эта функция возвращает имя этого экземпляра.
Пример использования функции
В данном случае, так как у меня именованный экземпляр, функция @@SERVICENAME вернула имя экземпляра.
Способ 3 – функция SERVERPROPERTY
Следующий способ определения имени экземпляра SQL Server предполагает использование системной функции SERVERPROPERTY, которая возвращает много различных сведений о свойствах экземпляра Microsoft SQL Server.
Данная функция принимает один параметр, и если мы передадим значение «InstanceName», то она нам вернет имя экземпляра.
Однако здесь стоит учитывать, что если используется экземпляр по умолчанию, то функция вернет NULL.
Пример использования функции
У меня именованный экземпляр, поэтому функция вернула имя экземпляра.
Способ 4 – процедура xp_regread
Если Вам необходимо узнать имена всех экземпляров SQL Server, которые установлены на конкретном сервере, то для этого Вы можете использовать системную хранимую процедуру xp_regread, которая умеет считывать параметры реестра Windows, в котором как раз и можно найти всю интересующую нас информацию об экземплярах Microsoft SQL Server.
Процедура принимает три параметра: в первом мы указываем название раздела реестра, во втором — путь к нужной нам ветке реестра, и третий — параметр, значение которого нам нужно считать.
Пример использования процедуры
У меня установлен только один экземпляр, поэтому инструкция вернула одну строку данных.
Как узнать имя экземпляра Microsoft SQL Server на PowerShell
Способ предполагает простое считывание названия службы Microsoft SQL Server, т.е. мы с помощью определенной инструкции на PowerShell ищем название службы по префиксу «MSSQL$» (данный префикс имеет «Имя службы, а не «Отображаемое имя службы»).
Пример инструкции на PowerShell
Кроме этого, узнать имя экземпляра Microsoft SQL Server можно, если зайти в оснастку «Службы» в Windows и посмотреть, какое имя указано в названии службы SQL Server.
Заметка! Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server
Чтобы изолировать друг от друга папки установки, формируется уникальный идентификатор экземпляра для каждого из компонентов экземпляра SQL Server.
Программные файлы и файлы данных не могут быть установлены на съемном диске, в файловой системе со сжатием данных, в каталоге расположения системных файлов, а также на общих дисках экземпляра отказоустойчивого кластера.
Может потребоваться настроить программное обеспечение, например антивирусное и антишпионское приложения, чтобы исключить из проверки типы файлов и папки SQL Server. Дополнительные сведения см. в этой статье службы поддержки: Настройка антивирусного программного обеспечения на компьютерах, где выполняется SQL Server.
Общие файлы для всех экземпляров SQL Server
Общие файлы, используемые всеми экземплярами на одном компьютере, устанавливаются в папку :\Program Files\Microsoft SQL Server\nnn\. — это буква диска, на который устанавливаются компоненты. Обычно по умолчанию диск C. Значение nnn определяет версию. В следующей таблице перечислены версии для путей.
Версия | *nnn* | |
---|---|---|
SQL Server 2019 (15.x) | 150 | 15 |
SQL Server 2017 (14.x); | 140 | 14 |
SQL Server 2016 (13.x); | 130 | 13 |
SQL Server 2014 (12.x) | 120 | 12 |
SQL Server 2012 (11.x) | 110 | 11 |
Расположение файлов и сопоставление данных реестра
Во время установки SQL Server для каждого компонента сервера создается идентификатор экземпляра. В этой версии SQL Server сервер состоит из компонента Компонент Database Engine, служб Службы Analysis Servicesи Службы Reporting Services.
Идентификатор экземпляра по умолчанию указывается в следующем формате.
Для компонента Компонент Database Engine— MSSQL, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
Для служб Службы Analysis Services— MSAS, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
Для служб Службы Reporting Services— MSRS, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
MSSQL
MSAS
MSSQL
C:\Program Files\Microsoft SQL Server\MSSQL
C:\Program Files\Microsoft SQL Server\MSAS
В качестве идентификатора экземпляра может быть указано любое значение, следует только избегать применения специальных символов и зарезервированных ключевых слов.
Службы Integration Services и клиентские компоненты не привязаны к экземпляру, поэтому им не присваивается идентификатор экземпляра. По умолчанию компоненты, не привязанные к экземпляру, устанавливаются в один каталог: :\Program Files\Microsoft SQL Server\nnn\. Изменение пути установки для одного компонента приводит к его изменению и для всех остальных компонентов. При последующих установках компоненты, не зависящие от экземпляра, устанавливаются в каталог исходной установки.
SQL Server Службы Analysis Services — это единственный компонент SQL Server, который поддерживает переименование экземпляра после установки. При переименовании экземпляра служб Службы Analysis Services его идентификатор экземпляра не изменится. После переименования экземпляра в каталогах и разделах реестра по-прежнему используется идентификатор экземпляра, созданный во время установки.
В разделе реестра HKLM\Software\Microsoft\MicrosoftSQL Server\ создается куст для компонентов, привязанных к экземпляру. Например,
В реестре также хранится сопоставление идентификаторов экземпляров с именами экземпляров. Сопоставление идентификатора экземпляра с именем экземпляра осуществляется следующим образом:
[HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\SQL] » «=»MSSQL
[HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\OLAP] » «=»MSAS
[HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\RS] » «=»MSRS
Указание путей к файлам
В ходе установки вы можете изменить путь установки для следующих компонентов:
Путь установки отображается в программе установки только для компонентов с пользовательской целевой папкой.
Убедитесь, что папка \Program Files\MicrosoftSQL Server\ защищена через ограничение разрешений.
Обратите внимание, что диск по умолчанию для расположений файлов — systemdrive, обычно это диск C. Пути установки вложенных компонентов определяются путем установки родительского компонента.
1 Используется общий путь установки для Службы Integration Services и клиентских компонентов. Изменение пути установки для одного компонента влечет изменение пути для других компонентов. При последующих установках компоненты устанавливаются в расположение исходной установки.
2 Этот каталог используется всеми экземплярами SQL Server на компьютере. При применении обновления к любому из экземпляров на компьютере все файловые изменения коснутся каждого из них. При добавлении компонентов в существующую конфигурацию невозможно ни изменить расположение ранее установленного компонента, ни указать расположение нового. Необходимо либо установить дополнительные компоненты в каталоги, созданные программой установки, либо удалить продукт и установить его заново.
Для кластеризованных конфигураций необходимо выбрать локальный диск, доступный на всех узлах кластера.
При указании пути установки для компонента Компонент Database Engine программа установки SQL Server использует этот путь в качестве корневого каталога этой установки для всех папок, относящихся к экземпляру, включая файлы данных SQL. Если в этом случае в качестве корневого каталога указать «C:\Program Files\MicrosoftSQL Server\MSSQL
Поэтому при использовании функции обновления USESYSDB в мастере установки SQL Server (режим установки с пользовательским интерфейсом) можно попасть в ситуацию, когда продукт окажется установленным в рекурсивной структуре папок. Например, \MSSQL14\MSSQL\MSSQL10_50\MSSQL\Data\. Поэтому при использовании функции USESYSDB вместо компонента Компонент Database Engine необходимо указывать путь установки файлов данных SQL.
Обычно файлы данных можно найти в дочернем каталоге с именем Data. Например, если при обновлении вы укажете «C:\Program Files\MicrosoftSQL Server\MSSQL
Как определить установленные экземпляры SQL Server и их версии?
Я пытаюсь определить, какие экземпляры sql server / sql express я установил (вручную или программно), но все примеры говорят мне запустить SQL-запрос, чтобы определить это, что предполагает, что я уже подключен к определенному экземпляру.
18 ответов
в командной строке:
(Примечание: должна быть заглавная L)
в этом списке будут перечислены все серверы sql, установленные в вашей сети. Существуют параметры конфигурации, которые можно задать для предотвращения отображения SQL Server в списке. Сделать это.
в командной строке:
в списке включенные протоколы выберите «TCP / IP», затем нажмите кнопку Свойства. Существует флажок «скрыть сервер».
вы можете запросить это значение реестра, чтобы получить версию SQL напрямую:
кроме того, вы можете запросить имя экземпляра, а затем использовать sqlcmd с именем экземпляра, которое вы хотели бы:
чтобы увидеть свое имя пример:
затем выполнить это:
все установленные экземпляры должны отображаться в оснастке «службы» в консоли управления Microsoft. Чтобы получить имена экземпляров, перейдите в меню Пуск | запуск / тип служб.msc и найдите все записи с » Sql Server (имя экземпляра)».
— T-SQL запрос для поиска списка экземпляров, установленных на компьютере
однако, если вы ищете более широкий процесс обнаружения, вы можете рассмотреть сторонние инструменты, такие как SQLRecon и SQLPing, которые будут сканировать вашу сеть и создавать отчет обо всех экземплярах служб SQL, найденных на любом сервере, к которому они имеют доступ. Прошло некоторое время с тех пор, как я использовал такие инструменты, но я был удивлен тем, что они нашли (а именно, несколько случаев, которые я не сделал знать, что существовал). YMMV. Вы можете Google для деталей, но я считаю, что эта страница имеет соответствующие загрузки:http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
Я знаю, что этот поток немного староват, но я наткнулся на этот поток, прежде чем нашел ответ, который я искал, и думал, что поделюсь. Если вы используете SQLExpress (или localdb), есть более простой способ найти имена экземпляров. В командной строке введите:
Это будет список имен инстанции установлено локально. Таким образом, ваше полное имя сервера должно включать (localdb)\ перед именем экземпляра для подключения. Кроме того, sqllocaldb позволяет создавать новые экземпляры или удалите их,а также настройте их. См.: Утилита SqlLocalDB.
SQL Server позволяет приложениям находить экземпляры SQL Server в текущей сети. Класс SqlDataSourceEnumerator предоставляет эту информацию разработчику приложения, предоставляя объект DataTable, содержащий сведения обо всех видимых серверах. Эта возвращенная таблица содержит список экземпляров сервера, доступных в сети, который соответствует списку, предоставляемому при попытке пользователя создать новое соединение, и расширяет раскрывающийся список, содержащий все доступные серверы на диалоговое окно свойства соединения. Отображаемые результаты не всегда являются полными. Чтобы получить таблицу, содержащую сведения о доступных экземплярах SQL Server, необходимо сначала получить перечислитель, используя свойство shared/static Instance:
Если вы заинтересованы в определении этого в скрипте, вы можете попробовать следующее:
Примечание: grep является частью gnuwin32 tools
из командной строки Windows, типа:
это требует достаточно разрешений, конечно.
У меня была та же проблема. Команда» osql-L » отображает только список серверов, но без имен экземпляров (отображается только экземпляр моего локального SQL Sever). С Wireshark, sqlbrowser.exe (который можно найти в общей папке вашей установки SQL) я нашел решение для своей проблемы.
в моей конфигурации используется 1 физический и 3 виртуальных сетевых адаптера. Если я использовал команду» osql-L», sqlbrowser отобразил запрос от одного из виртуальных адаптеров (который находится в другом сегменте Сети) вместо физического. osql выбирает adpater по его метрике. Вы можете увидеть метрику с командой «route print». Для моей конфигурации таблица маршрутизации показала более низкую метрику для виртуального адаптера, а затем для физического. Поэтому я изменил метрику интерфейса в свойства сети путем отмены выбора автоматической метрики в расширенных параметрах сети. osql теперь использует физический адаптер.
этот запрос должен получить имя сервера и имя экземпляра :
У меня была такая же проблема, когда я оценивал 100 + серверов, у меня был сценарий, написанный на C#, чтобы просмотреть имена служб, состоящие из SQL. При установке экземпляров на сервере SQL Server добавляет службу для каждого экземпляра с именем службы. Он может отличаться для разных версий, таких как 2000 до 2008, но наверняка есть служба с именем экземпляра.
Я беру имя службы и получаю имя экземпляра из имени службы. Вот пример кода, используемого с запросом WMI Результат:
Если ваш в SSMS вы можете найти его проще в использовании:
Я только что установил Sql server 2008, но мне не удалось подключиться к экземплярам базы данных. В опубликованных командах @G Mastros нет активных экземпляров.
поэтому я посмотрел в службах и обнаружил, что агент SQL server отключен. Я исправил это, установив его на автоматический, а затем запустив его.
вот простой способ: идти к Начнем Затем программы Затем Microsoft SQL Server 2005 Затем Инструменты Настройки Затем диспетчер конфигурации SQL Server Затем конфигурация сети SQL Server 2005 Здесь вы можете найти все экземпляры, установленные на вашем компьютере.
Я знаю его старый пост, но я нашел хорошее решение с PoweShell, где вы можете найти экземпляры SQL, установленные на локальном или удаленном компьютере, включая версию, а также расширить получить другие свойства.
еще один вариант-запустить отчет обнаружения SQLSERVER..перейдите на установочный носитель sqlserver и дважды щелкните настройка.exe
и на следующем экране перейдите в сервис и нажмите отчет об обнаружении, как показано ниже
Это покажет вам все экземпляры, присутствующие вместе со всеми функциями..ниже приведен снимок на моем ПК
Краткое руководство. Подключение к экземпляру SQL Server и выполнение запросов с помощью SQL Server Management Studio (SSMS)
Начало работы с SQL Server Management Studio (SSMS) для подключения к экземпляру базы данных SQL Server и выполнения некоторых команд Transact-SQL (T-SQL).
В статье показано, как выполнять следующие задачи:
Предварительные условия
Подключение к экземпляру SQL Server
Запустите среду SQL Server Management Studio. При первом запуске SSMS откроется окно Подключение к серверу. Если этого не происходит, вы можете открыть его вручную, последовательно выбрав Обозреватель объектов > Подключить > Ядро СУБД.
Параметр | Рекомендуемые значения | Описание |
---|---|---|
Тип сервера | Ядро СУБД | В поле Тип сервера выберите Ядро СУБД (обычно это параметр по умолчанию). |
Имя сервера | Полное имя сервера | В поле Имя сервера введите имя SQL Server (при локальном подключении в качестве имени сервера также можно использовать localhost). Если вы НЕ ИСПОЛЬЗУЕТЕ экземпляр по умолчанию — MSSQLSERVER — необходимо ввести имя сервера и имя экземпляра. Если вы не знаете, как определить имя экземпляра SQL Server, см. раздел Дополнительные советы и рекомендации по использованию SSMS. |
Аутентификация | Проверка подлинности Windows Проверка подлинности SQL Server | По умолчанию используется проверка подлинности Windows. Также для подключения можно использовать режим Проверка подлинности SQL Server. Если выбран режим Проверка подлинности SQL Server, необходимо ввести имя пользователя и пароль. Дополнительные сведения о типах проверки подлинности см. в разделе Подключение к серверу (ядро СУБД). |
Имя входа | Идентификатор пользователя учетной записи сервера | Идентификатор пользователя учетной записи сервера, используемой для входа на сервер. Имя для входа, используемое для проверки подлинности SQL Server. |
Пароль | Пароль учетной записи сервера | Пароль учетной записи сервера, используемой для входа на сервер. Пароль, используемый для проверки подлинности SQL Server. |
После заполнения всех полей выберите Подключить.
Вы также можете изменить дополнительные параметры подключения, выбрав Параметры. Примеры параметров подключения: база данных, к которой вы подключаетесь, время ожидания подключения и сетевой протокол. В этой статье во всех полях указываются значения по умолчанию.
Чтобы убедиться в успешном подключении к экземпляру SQL Server, разверните и изучите объекты в обозревателе объектов, для которых отображаются имя сервера, версия SQL Server и имя пользователя. Эти объекты могут различаться в зависимости от типа сервера.
Устранение проблем подключения
Сведения о способах устранения неполадок с подключением к экземпляру ядра СУБД SQL Server на отдельном сервере см. в статье Устранение неполадок при соединении с ядром СУБД SQL Server.
Создание базы данных
Выполните следующие действия, чтобы создать базу данных с именем TutorialDB:
Щелкните правой кнопкой мыши экземпляр сервера в обозревателе объектов и выберите Создать запрос.
Вставьте в окно запроса следующий фрагмент кода T-SQL:
Чтобы запустить запрос, нажмите кнопку Выполнить (или клавишу F5).
После выполнения запроса в списке баз данных в обозревателе объектов появится новая база данных TutorialDB. Если она не отображается, щелкните правой кнопкой мыши узел Базы данных и выберите Обновить.
Создание таблицы в новой базе данных
В этом разделе вы создадите таблицу в новой базе данных TutorialDB. Так как редактор запросов все еще находится в контексте базы данных master, переключите контекст подключения на базу TutorialDB, сделав следующее.
Выберите нужную базу данных в раскрывающемся списке, как показано здесь:
Вставьте в окно запроса следующий фрагмент кода T-SQL:
Чтобы запустить запрос, нажмите кнопку Выполнить (или клавишу F5).
После выполнения запроса в списке таблиц в обозревателе объектов появится новая таблица Customers. Если таблица не отображается, щелкните правой кнопкой мыши узел TutorialDB > Таблицы в обозревателе объектов, а затем выберите Обновить.
Вставка строк в новую таблицу
Вставьте в созданную таблицу Customers какие-нибудь строки. Вставьте следующий фрагмент кода T-SQL в окно запросов и нажмите кнопку Выполнить.
Запрос к таблице и просмотр результатов
Результаты запроса выводятся под текстовым окном запроса. Чтобы запросить таблицу Customers и просмотреть вставленные строки, выполните следующие действия:
Вставьте следующий фрагмент кода T-SQL в окно запросов и нажмите кнопку Выполнить.
Результаты запроса отображаются под областью, где был введен текст.
Вы также можете изменить представление результатов одним из следующих способов:
Проверка свойств подключения с помощью таблицы окна запросов
Сведения о свойствах подключения приводятся под результатами запроса. После выполнения запроса из предыдущего этапа просмотрите свойства подключения в нижней части окна запросов.
Вы можете определить, к какому серверу и какой базе данных вы подключены и под каким именем пользователя выполнен вход.
Кроме того, вы можете проверить длительность запроса и число строк, возвращенных предыдущим запросом.
Дополнительные средства
Также с помощью Azure Data Studio вы можете выполнять подключения и запросы к SQL Server, базе данных SQL Azure и Azure Synapse Analytics.
Дальнейшие действия
Лучший способ познакомиться с SSMS — это поработать в среде самостоятельно. Эти статьи помогут вам ознакомиться с различными функциями SSMS.