Как узнать имя экземпляра 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.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Программирование на 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-запроса.
Как узнать instance name sql server
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
I just start to learn SQL server now. I am trying to migrate data from oracle to SQL server 2005 using SQL server migrant assistant for Oracle. But I don’t know how to fiill this connection details
SQL Server port
(leave empty if default):
SQL Server instance name
(leave empty if default):
How to find these properties? Anyone can help?
Answers
Actually it is select @@servicename (to find the last part of the instance)
So total name would be select @@servername + ‘\’ + @@servicename
My mistake. @@servername works correctly with the instance.
SQL Server Instance Name :
or Open a new query in SQL Server Management window and execute the following
— to get the sql server instance name
select @@ServerName
All replies
Declare @key Varchar ( 100 ), @PortNumber varchar ( 20 )
set @key = ‘SOFTWARE\MICROSOFT\Microsoft SQL Server\’ + @@servicename + ‘\MSSQLServer\Supersocketnetlib\TCP’
set @key = ‘SOFTWARE\MICROSOFT\MSSQLServer\MSSQLServer\Supersocketnetlib\TCP’
CONVERT ( char ( 20 ), SERVERPROPERTY ( ‘MachineName’ ))
There you will find the name of the Host.
or Open a new query in SQL Server Management window and execute the following
How to get current instance name from T-SQL
How can I get the SQL Server server and instance name of the current connection, using a T-SQL script?
8 Answers 8
Just found the answer, in this SO question (literally, inside the question, not any answer):
returns servername\instance as far as this is not the default instance
returns instance name, even if this is the default (MSSQLSERVER)
This will get the instance name as well. null means default instance:
SELECT @@servername will give you data as server/instanceName
Why stop at just the instance name? You can inventory your SQL Server environment with following:
That will give you list of all instances installed in your server.
The ServerName property of the SERVERPROPERTY function and @@SERVERNAME return similar information. The ServerName property provides the Windows server and instance name that together make up the unique server instance. @@SERVERNAME provides the currently configured local server name.
And Microsoft example for current server is:
This scenario is useful when there are multiple instances of SQL Server installed on a Windows server, and the client must open another connection to the same instance used by the current connection.
Что такое экземпляр sql server?
Я разрабатываю приложение на C# в Visaul Studio 2015, которое работает с sql базой данной. Я программист самоучка, практик без какого-либо теоретического образования, все вопросы которые возникают просто гуглю, а тут бьюсь какую неделю и ни как не могу разобраться. Помогите, пожалуйста.
Была база данных sql и проект, по моему в 2012 студии. Базу данных делал в какой-то sql management studio, не помню какая версия. И вот пришлось вернуться к заводским настройкам компьютера и все, что было устанавливать заново. Установил 2015 Visual Studio, sql express 2014 и sql management studio 2014. Все устанавливал «по умолчанию» просто нажимал кнопку далее, так как мало что во всем этом понимаю. После запуска старого проекта в Visual Studio 2015, она видит файл базы данных, но с красным крестиком, и когда я нажимаю «проверить подключение» выдает ошибку:
«Значение источника данных в строке подключения указывает на неустановленный экземпляр SQL Server. Для устранения этой проблемы установите соответствующий экземпляр SQL Server или измените значение источника данных в строке подключения.»
что такое экземпляр SQL Server? как его узнать и как установить? я установил еще SQL Server 2012, но все равно выдает ошибку.
Заранее большое спасибо за помощь.
Скорей всего после установки у вас поменялся Хост или имя БД. Вам нужно найти в вашем коде описанные реквизиты и исправить их на корректные.
Значение источника данных в строке подключения указывает на неустановленный экземпляр SQL Server. Для устранения этой проблемы установите соответствующий экземпляр SQL Server или измените значение источника данных в строке подключения.
Ошибка ведь сама за себя говорит: когда пытаетесь открыть БД в студии, настройку подключения она «подхватывает» из файла app.config (web.config, если web-приложение). Сейчас, видимо, у вас указана неверная строка, которая ссылается на SQL Server другой версии.
Вот как примерно должен выглядеть параметр строки подключения:
В основном, обычно, в разных версиях SQL Server меняется только параметр «Data Source» в этой строке.













