Jesteśmy w trakcie wymiany naszego SQL Servera i zdecydowaliśmy, że zmiana nazwy samego serwera będzie znacznie łatwiejsza niż zmiana wszystkiego innego, aby wskazać nową nazwę. Znaleźliśmy instrukcje dotyczące zmiany nazwy instancji SQL Server, aby pasowała do nazwy komputera, która wygląda następująco:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
Chociaż SQL Enterprise Manager nie lubi tych razem. Musiałem zmienić to na następujące, aby działało razem:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
Co nie jest złe, ale wolałbym, żeby rzeczy były bardziej zautomatyzowane. Ponieważ @@ NazwaSerwera zwraca nazwę instancji, wymyśliłem, jak zautomatyzować pierwszy wiersz:
sp_dropserver @@ServerName; GO
Dowiedziałem się również, że SERVERPROPERTY („nazwa_serwera”) ma zwrócić nazwę komputera, więc pomyślałem, że mógłbym użyć tego do zautomatyzowania drugiej części, ale to nie działało:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
Próbowałem ustawić zmienną, którą i tak muszę zrobić, aby zaktualizować zadania agenta SQL, ale to też nie działało:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
Niepoprawna składnia w pobliżu „sp_addserver”.
Bardzo chciałbym nie musieć na stałe wpisywać nowej nazwy serwera do skryptu, aby łatwiej było z niej korzystać. Czy ktoś ma jakieś pomysły?
źródło
Odpowiedzi:
Oto skrypt do robienia tego, co chcesz:
Kredyty: http://www.myitforum.com/articles/5/view.asp?id=4983
źródło
Z pomocą magmy i Sankara Reddy, oto gotowy skrypt:
Artykuł, który znalazła magma, zawierał jeden mały błąd, który polegał na tym, że próbował upuścić nową nazwę i dodać starą nazwę zamiast upuszczać starą nazwę i dodawać nową. Dodałem również zapytanie o aktualizację, aby naprawić zadania agenta SQL. Pamiętaj, że działa to poprawnie tylko w przypadku serwera głównego w środowisku wieloserwerowym. Moje środowisko to środowisko z jednym serwerem, więc działa w mojej sytuacji.
źródło
źródło