Wir sind dabei, unseren SQL Server zu ersetzen, und haben entschieden, dass das Umbenennen des Servers selbst viel einfacher sein wird, als alles andere so zu ändern, dass es auf einen neuen Namen verweist. Wir haben Anweisungen zum Ändern des SQL Server-Instanznamens gefunden, um ihn an den Computernamen anzupassen, der folgendermaßen aussieht:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
Obwohl SQL Enterprise Manager diese zusammen nicht zu mögen scheint. Ich musste es wie folgt ändern, damit es zusammenarbeitet:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
Was nicht schlecht ist, aber ich würde es vorziehen, wenn die Dinge automatisierter wären. Da @@ Servername den Namen der Instanz zurückgibt, habe ich herausgefunden, wie die erste Zeile automatisiert werden kann:
sp_dropserver @@ServerName; GO
Ich habe auch erfahren, dass SERVERPROPERTY ('Servername') den Computernamen zurückgeben soll, also dachte ich, ich könnte das vielleicht verwenden, um den zweiten Teil zu automatisieren, aber das hat nicht funktioniert:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
Ich habe versucht, eine Variable festzulegen, was ich sowieso tun muss, um die SQL Agent-Jobs zu aktualisieren, aber das hat auch nicht funktioniert:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
Falsche Syntax in der Nähe von 'sp_addserver'.
Ich würde sehr gerne nicht den neuen Servernamen in das Skript fest codieren müssen, um dies einfacher wiederverwendbar zu machen. Hat jemand irgendwelche Ideen?