Ми в процесі заміни нашого SQL Server і вирішили, що перейменувати сам сервер буде набагато простіше, ніж змінити все інше, щоб вказати на нове ім'я. Ми знайшли інструкції щодо зміни імені екземпляра SQL Server, щоб відповідати імені комп'ютера, яке виглядає приблизно так:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
Хоча SQL Enterprise Manager, схоже, не подобається разом. Мені довелося змінити його на наступне, щоб він працював разом:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
Що непогано, але я вважаю за краще, щоб речі були більш автоматизованими. Оскільки @@ ServerName повертає ім'я екземпляра, я зрозумів, як автоматизувати перший рядок:
sp_dropserver @@ServerName; GO
Я також дізнався, що SERVERPROPERTY ("ServerName") повинен повернути ім'я комп'ютера, тому я подумав, що, можливо, я міг би використовувати це для автоматизації другої частини, але це не спрацювало:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
Я спробував встановити змінну, яку мені все-таки потрібно зробити, щоб оновити завдання SQL Agent, але це не спрацювало:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
Неправильний синтаксис біля "sp_addserver".
Мені дуже хотілося б не вводити жорстке кодування нового імені сервера в сценарій, щоб зробити це більш легким для повторного використання. Хтось мав якісь ідеї?