Когда Windows-сервер переименовали, сам SQL Server не всегда автоматически подхватывает новое имя. В результате hostname уже новый, а запрос SELECT @@SERVERNAME всё ещё возвращает старое значение. Это неприятная мелочь: часть административных скриптов, мониторинг, linked servers и некоторые приложения начинают видеть сервер не так, как ожидается.
Ниже рабочая схема для обычного standalone-экземпляра SQL Server. Для кластера, Always On и сложных инсталляций сначала проверьте документацию Microsoft и вашу архитектуру: там имя сервера может быть частью более широкой конфигурации.
Когда это нужно делать
- сервер Windows был переименован после установки SQL Server;
- в SQL Server Management Studio или скриптах видно старое имя;
- запрос
@@SERVERNAMEотличается от текущего имени Windows; - после переименования ломаются задания, мониторинг или подключения, где используется имя SQL-сервера.
Проверяем текущее имя Windows и SQL Server
Откройте SQL Server Management Studio, подключитесь к нужному экземпляру и выполните проверочный запрос. Он покажет, какое имя хранит SQL Server и какое имя видит Windows.
SELECT @@SERVERNAME AS SqlServerName;
SELECT SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('ServerName') AS ServerName,
SERVERPROPERTY('InstanceName') AS InstanceName;Если SqlServerName содержит старое имя, его нужно пересоздать. Для именованного экземпляра используйте формат НОВОЕ-ИМЯ\INSTANCE, для экземпляра по умолчанию достаточно имени сервера.
Сохраняем старое имя перед изменением
Перед правкой удобно вывести список серверов, зарегистрированных внутри SQL Server. Так вы не ошибётесь в строке, которую надо удалить.
SELECT * FROM sys.servers;
В списке найдите строку с server_id = 0. Обычно именно она соответствует локальному серверу. Запишите старое значение, чтобы использовать его в sp_dropserver.
Удаляем старое имя и добавляем новое
Команды выполняются от имени пользователя с правами sysadmin. В примере ниже сервер переименовали с OLD-SRV на NEW-SRV.
EXEC sp_dropserver 'OLD-SRV'; GO EXEC sp_addserver 'NEW-SRV', 'local'; GO
Для именованного экземпляра строка будет другой. Например, если экземпляр называется SQL2019:
EXEC sp_dropserver 'OLD-SRV\SQL2019'; GO EXEC sp_addserver 'NEW-SRV\SQL2019', 'local'; GO
Перезапускаем службу SQL Server
Изменение вступает в силу после перезапуска службы SQL Server. На сервере откройте Services, найдите службу SQL Server и перезапустите её в окно обслуживания. Если удобнее через PowerShell, используйте имя вашей службы.
Get-Service MSSQLSERVER Restart-Service MSSQLSERVER
Для именованного экземпляра служба обычно называется в формате MSSQL$INSTANCE.
Get-Service 'MSSQL$SQL2019' Restart-Service 'MSSQL$SQL2019'
Проверяем результат
После перезапуска снова выполните запрос. Теперь @@SERVERNAME должен совпадать с новым именем сервера или с новым именем экземпляра.
SELECT @@SERVERNAME AS SqlServerName; SELECT * FROM sys.servers WHERE server_id = 0;
Если значение не изменилось, чаще всего причина в том, что служба не была перезапущена, команда выполнялась не в том экземпляре или в sp_dropserver указали не то старое имя.
Что ещё проверить после переименования
- SQL Server Agent Jobs: в шагах заданий могут быть жёстко прописаны старые пути или имена серверов;
- linked servers: проверьте, не ссылаются ли они на старое имя;
- backup jobs и maintenance plans: особенно если бэкапы складываются на сетевой ресурс;
- строки подключения приложений: часть приложений продолжит ходить на старое имя, если оно прописано вручную;
- мониторинг и алерты: Zabbix, PRTG, SCOM и похожие системы часто привязаны к имени.
Если сервер участвует в репликации или Always On
Для репликации, Always On Availability Groups, кластера или SQL Server с большим количеством зависимостей не ограничивайтесь двумя процедурами. Сначала проверьте роль сервера и план обслуживания. В таких схемах переименование может затронуть listeners, endpoints, задания агента и DNS-записи.
Короткий чек-лист
- проверили
@@SERVERNAMEиsys.servers; - удалили старое имя через
sp_dropserver; - добавили новое имя через
sp_addserverс параметромlocal; - перезапустили службу SQL Server;
- повторно проверили
@@SERVERNAME; - прошлись по заданиям, linked servers, бэкапам и строкам подключения.





[…] Как исправить имя SQL Server после переименования Windows-серв… […]