Как посмотреть список sql серверов
Как узнать имя экземпляра 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 серверов: Справочник по C#
В данной статье рассмотрим два варианта получения доступных в сети SQL серверов.
1) Для получения доступных SQL серверов на локальном компьютере или в сети необходимо воспользоваться классом «SqlDataSourceEnumerator», который обеспечивает доступ к этим сведениям, предоставляя объект «DataTable» с данными обо всех видимых серверах. Для этого необходимо вызвать метод «GetDataSources», который возвращает таблицу «DataTable» со сведениями о доступных серверах:
Таблица, возвращенная в результате вызова этого метода, содержит следующие столбцы, причем все эти столбцы содержат значения «string».
Сведения о серверах из списка могут включать или не включать такие дополнительные данные, как «IsClustered» и версия (Version). Это зависит от того, каким образом был получен список. В списках серверов, полученных с помощью службы обозревателя «SQL Server», присутствует больше сведений, чем в списках серверов, найденных с помощью инфраструктуры Windows и содержащих только имена.
Так же из-за особенностей механизма, используемого «SqlDataSourceEnumerator» для поиска источников данных в сети, этот метод не всегда возвращает полный список доступных серверов, и для последовательных вызовов содержимое списка может изменяться в зависимости от таких факторов, как время ожидания и сетевой трафик. Это может привести к тому, что при двух последовательных вызовах будут получены разные списки. В список входят только серверы, находящиеся в одной сети. Широковещательные пакеты обычно не проходят через маршрутизаторы, поэтому некоторый сервер может отсутствовать в списке, но будет стабильно работать.
Если вы планируете применять данную функцию, чтобы дать возможность пользователю выбрать сервер из списка, обязательно предоставляйте пользователю возможность ввести отсутствующее в списке имя сервера на случай, если перечисление вернет не все доступные серверы.
Кроме того, этот метод может выполняться довольно долго, поэтому в ситуациях, когда приоритетным является быстродействие, пользоваться им следует с осторожностью.
В «SQL Server 2000» данные для «SqlDataSourceEnumerator» предоставляются внутренним образом. Но в версии «SQL Server 2005» эти сведения предоставляются с использованием внешней службы Windows, называемой обозревателем SQL. Применение этой службы разрешено по умолчанию, но администраторы могут ее выключать или запрещать, в результате чего соответствующий экземпляр сервера становится невидимым для указанного класса. Эта служба применяется только в версии «SQL Server 2005» и не оказывает влияния на поведение «SQL Server 2000». Оборудование и программное обеспечение так же могут налагать свои ограничения на возможность поиска экземпляров «SQL Server».
Ниже представлен пример получения и вывода сокращенной информации обо всех найденных в сети и (или) локальных SQL серверов в элемент управления «ComboBox» и более полной информации в элемент управления «RichTextBox».
2) В данном примере необходимо добавить класс «SqlLocator» в листинг формы, где будет выполняться запуск процесса поиска и вывода найденных SQL серверов в сети.
Для получения списка SQL серверов с помощью данного класса необходимо вызвать из него метод «GetServers», который возвращает строковый массив с доступными в сети серверами.
Как определить установленные экземпляры 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
и на следующем экране перейдите в сервис и нажмите отчет об обнаружении, как показано ниже
Это покажет вам все экземпляры, присутствующие вместе со всеми функциями..ниже приведен снимок на моем ПК
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Как узнать имя сервера Microsoft SQL Server
Для выполнения запросов к локальной базе данных Microsoft SQL Server из программы необходимо знать имя экземпляра сервера. Из статьи вы узнаете, как его получить.
Способ первый. Самый надежный
В Microsoft SQL Server предусмотрен специальный SQL запрос, возвращающий имя экземпляра сервера:
Выполнив данный запрос, например, в SQL Server Management Studio, вы получите имя вашего экземпляра сервера.
В данном случае было возвращено имя установленного экземпляра Microsoft SQL Server равное: SQLEXPRESS.
Способ второй
Другим способом получения имени SQL-сервера является поиск записи службы SQL Server.
Запустите классическое приложение Windows “Службы” на вашем компьютере и найдите в списке служб объект SQL Server.
В скобках будет указано имя экземпляра.
В этом же меню можно остановить, запустить и перезапустить экземпляр установленного Microsoft SQL Server.
Стоит отметить, что второй способ получения имени сервера – менее достоверен. В скобках не всегда указано истинное имя сервера, пригодное для обращения к нему при подключении. Поэтому при наличии возможности лучше всего использовать первый способ получения имени с помощью SQL-запроса.
Как получить список баз данных в Microsoft SQL Server на T-SQL?
В этой небольшой заметке я покажу Вам два способа, как можно получить список баз данных на языке T-SQL в Microsoft SQL Server. Первый способ заключается в использовании системного представления sys.databases, второй — в использовании системной хранимой процедуры sp_helpdb.
Вы можете использовать тот способ, который Вам будет удобнее в той или иной ситуации, я со своей стороны дам несколько рекомендаций.
Получаем список баз данных с помощью представления sys.databases
Сейчас мы напишем SQL запрос с использованием системного представления sys.databases, который покажет нам список баз данных на экземпляре Microsoft SQL Server.
На мой взгляд, данный способ предпочтительней, так как представление sys.databases выводит детальную информацию о параметрах базы данных, которая может быть очень полезна.
В данном случае для примера мы выведем следующие параметры баз данных:
Более детально посмотреть обо всех параметрах, которые возвращает представление sys.databases, можете посмотреть в официальной документации по Transact-SQL – Системное представление sys.databases
Выводим список баз данных с помощью процедуры sp_helpdb
Хранимая процедура sp_helpdb выводит меньше информации о параметрах баз данных, однако она показывает дополнительную полезную информацию, например, размер базы данных. Также данный способ предпочтительней, если список баз данных необходим клиентскому приложению, т.е. из клиента лучше вызывать хранимую процедуру, чем посылать SQL запрос SELECT.
Процедура sp_helpdb возвращает следующие данные:
Теперь Вы знаете, как можно вывести список баз данных в Microsoft SQL Server. Если Вы начинающий программист и у Вас нет базовых знаний языка SQL, то я Вам рекомендую почитать книгу «SQL код» – это самоучитель по данному языку. Книга написана мной, в ней я очень подробно рассказываю о языке SQL.
Заметка! Для комплексного изучения языка SQL и T-SQL рекомендую пройти наши онлайн-курсы по T-SQL, на которых используется последовательная методика обучения специально для начинающих.