Вход в систему SQL Server
Войти в систему на экземпляре Microsoft SQL Server можно с использованием любого графического средства администрирования или из командной строки.
При входе на экземпляр SQL Server с помощью графического средства администрирования, такого как среда SQL Server Management Studio, пользователю предлагается ввести имя сервера, имя входа SQL Server и, при необходимости, пароль. Если вход на SQL Server осуществляется с проверкой подлинности Windows, то каждый раз при обращении к экземпляру SQL Serverвводить имя входа SQL Server не нужно. Вместо этого в SQL Server используется учетная запись Microsoft Windows для автоматического входа в систему. Если SQL Server работает в смешанном режиме (проверка подлинности SQL Server и Windows) и пользователь входит в систему с проверкой подлинности SQL Server, то необходимо указать имя входа SQL Server и пароль. По возможности используйте аутентификацию Windows.
Если при установке SQL Serverбыли выбраны параметры сортировки с учетом регистра, то для имени входа SQL Server регистр также учитывается.
Формат для указания имени сервера SQL Server
При подключении к экземпляру «Компонент Database Engine» необходимо указать имя экземпляра SQL Server. Если экземпляр SQL Server является экземпляром по умолчанию (неименованным экземпляром), то укажите имя компьютера, на котором установлен SQL Server , или IP-адрес этого компьютера. Если экземпляр SQL Server является именованным (например, SQLEXPRESS), то укажите имя компьютера, на котором установлен SQL Server , или IP-адрес этого компьютера и добавьте косую черту и имя экземпляра.
В следующем примере выполняется подключение к экземпляру SQL Server , работающему на компьютере с именем APPHOST. При задании именованного экземпляра в примерах используется имя экземпляра SQLEXPRESS.
Примеры:
| Тип экземпляра | Элемент для имени сервера |
|---|---|
| Соединение с экземпляром по умолчанию с помощью протокола по умолчанию. | APPHOST |
| Соединение с именованным экземпляром с помощью протокола по умолчанию. | APPHOST\SQLEXPRESS |
| Соединение с экземпляром по умолчанию на том же компьютере при помощи точки для указания, что экземпляр выполняется на локальном компьютере. | . |
| Соединение с именованным экземпляром на том же компьютере с помощью точки для указания, что экземпляр выполняется на локальном компьютере. | .\SQLEXPRESS |
| Соединение с экземпляром по умолчанию на том же компьютере при помощи localhost для указания, что экземпляр выполняется на локальном компьютере. | localhost |
| Соединение с именованным экземпляром на том же компьютере с помощью localhost, указывающее, что экземпляр выполняется на локальном компьютере. | localhost\SQLEXPRESS |
| Соединение с экземпляром по умолчанию на том же компьютере с помощью (local), указывающее, что экземпляр выполняется на локальном компьютере. | (local) |
| Соединение с именованным экземпляром на том же компьютере с помощью (local), указывающее, что экземпляр выполняется на локальном компьютере. | (local)\SQLEXPRESS |
| Соединение с экземпляром по умолчанию на том же компьютере с принудительным подключением к общей памяти. | lpc:APPHOST |
| Соединение с именованным экземпляром на том же компьютере с принудительным подключением к общей памяти. | lpc:APPHOST\SQLEXPRESS |
| Соединение с экземпляром по умолчанию, с прослушиванием TCP-адреса 192.168.17.28 с помощью IP-адреса. | 192.168.17.28 |
| Соединение с именованным экземпляром, с прослушиванием TCP-адреса 192.168.17.28 с помощью IP-адреса. | 192.168.17.28\SQLEXPRESS |
| Соединение с экземпляром по умолчанию, который не прослушивает TCP-порт по умолчанию, с указанием используемого порта, в данном случае 2828. (Указывать порт необязательно, если компонент Компонент Database Engine ожидает передачи данных на порте по умолчанию, т. е. 1433.) | APPHOST, 2828 |
| Соединение с именованным экземпляром на назначенный TCP порт, в данном случае 2828. (Указывать порт часто необходимо, если служба браузера SQL Server не запущена на компьютере узла.) | APPHOST, 2828 |
| Соединение с экземпляром по умолчанию, который не прослушивает TCP-порт по умолчанию, с указанием IP-адреса и TCP-порта, в данном случае 2828. | 192.168.17.28,2828 |
| Соединение с именованным экземпляром, с указанием IP-адреса и TCP-порта, в данном случае 2828. | 192.168.17.28\SQLEXPRESS,2828 |
| Соединение с экземпляром по умолчанию по имени при форсировании соединения TCP. | tcp:APPHOST |
| Соединение с именованным экземпляром по имени, с принудительным TCP-соединением. | tcp:APPHOST\SQLEXPRESS |
| Соединение с экземпляром по умолчанию, с указанием имени именованного канала. | \\APPHOST\pipe\SQL\query |
| Соединение с именованным экземпляром, с указанием имени именованного канала. | \\APPHOST\pipe\MSSQL$SQLEXPRESS\SQL\query |
| Соединение с экземпляром по умолчанию по имени, с принудительным подключением к именованным каналам. | np:APPHOST |
| Соединение с именованным экземпляром по имени, с принудительным подключением к именованным каналам. | np:APPHOST\SQLEXPRESS |
Проверка протокола соединения
При подключении к ядру СУБД следующий запрос возвратит протокол, используемый для текущего соединения, вместе с методом проверки подлинности (NTLM или Kerberos) и укажет состояние шифрования соединения.
SELECT net_transport, auth_scheme, encrypt_option FROM sys.dm_exec_connections WHERE session_id = @@SPID;
Связанные задачи
Следующие ресурсы могут помочь устранить проблему с соединением.
- Поиск и устранение неполадок соединений с SQL Server Database Engine
- Шаги для устранения неполадок с подключением SQL
@@SERVERNAME (Transact-SQL)
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Типы возвращаемых данных
nvarchar
Remarks
Программа установки SQL Server присваивает серверу имя компьютера. Чтобы изменить имя сервера, выполните процедуру sp_addserver, а затем перезапустите SQL Server.
При наличии нескольких установленных экземпляров SQL Server функция @@SERVERNAME возвращает указанные ниже сведения об имени локального сервера, если это имя не было изменено после установки.
| Экземпляр | Информация о сервере |
|---|---|
| Экземпляр по умолчанию | ‘имя_сервера‘ |
| Именованный экземпляр | ‘имя_сервера\имя_экземпляра‘ |
| Экземпляр отказоустойчивого кластера — экземпляр по умолчанию | «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server« |
| Экземпляр отказоустойчивого кластера — именованный экземпляр | «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server\имя_экземпляра« |
Хотя функция @@SERVERNAME и свойство SERVERNAME функции SERVERPROPERTY могут возвращать строки в похожих форматах, эта информация может различаться. Свойство SERVERNAME автоматически сообщает об изменениях сетевого имени компьютера.
Функция @@SERVERNAME о таких изменениях не сообщает. Она информирует об изменениях имени локального сервера, выполненных при помощи хранимой процедуры sp_addserver или sp_dropserver.
Примеры
Следующий пример демонстрирует использование процедуры @@SERVERNAME .
SELECT @@SERVERNAME AS 'Server Name'
Ниже приводится образец результирующего набора.
Server Name --------------------------------- ACCTG
Программирование на 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-запроса.
Как узнать имя экземпляра 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\имя_экземпляра» |
Пример использования функции
SELECT @@SERVERNAME AS SERVERNAME;

В моем случае используется именованный экземпляр Microsoft SQL Server, поэтому функция вернула соответствующие данные, где SQLEXPRESS и есть имя экземпляра SQL Server.
Способ 2 – функция @@SERVICENAME
Второй способ определения имени экземпляра Microsoft SQL Server предполагает использование функции @@SERVICENAME, которая возвращает имя раздела реестра, согласно которому запущен SQL Server.
Если текущий экземпляр является экземпляром по умолчанию, то данная функция возвращает «MSSQLSERVER», однако если же текущий экземпляр является именованным экземпляром, то эта функция возвращает имя этого экземпляра.
Пример использования функции
SELECT @@SERVICENAME AS SERVICENAME;

В данном случае, так как у меня именованный экземпляр, функция @@SERVICENAME вернула имя экземпляра.
Способ 3 – функция SERVERPROPERTY
Следующий способ определения имени экземпляра SQL Server предполагает использование системной функции SERVERPROPERTY, которая возвращает много различных сведений о свойствах экземпляра Microsoft SQL Server.
Данная функция принимает один параметр, и если мы передадим значение «InstanceName», то она нам вернет имя экземпляра.
Однако здесь стоит учитывать, что если используется экземпляр по умолчанию, то функция вернет NULL.
Пример использования функции
SELECT SERVERPROPERTY ('InstanceName') AS SERVERPROPERTY;

У меня именованный экземпляр, поэтому функция вернула имя экземпляра.
Способ 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;

У меня установлен только один экземпляр, поэтому инструкция вернула одну строку данных.
Как узнать имя экземпляра Microsoft SQL Server на PowerShell
Способ предполагает простое считывание названия службы Microsoft SQL Server, т.е. мы с помощью определенной инструкции на PowerShell ищем название службы по префиксу «MSSQL$» (данный префикс имеет «Имя службы, а не «Отображаемое имя службы»).
Пример инструкции на PowerShell
Get-WMIObject Win32_Service -Filter «name like ‘MSSQL$%'» | %

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