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?