Nous sommes en train de remplacer notre serveur SQL et avons décidé que renommer le serveur lui-même sera beaucoup plus facile que de changer tout le reste pour pointer vers un nouveau nom. Nous avons trouvé des instructions sur la modification du nom d'instance SQL Server pour qu'il corresponde au nom de l'ordinateur qui ressemble à ceci:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
Bien que SQL Enterprise Manager ne semble pas les aimer ensemble. J'ai dû le changer comme suit pour le faire fonctionner ensemble:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
Ce qui n'est pas mal, mais je préférerais que les choses soient plus automatisées. Étant donné que @@ ServerName renvoie le nom de l'instance, j'ai compris comment automatiser la première ligne:
sp_dropserver @@ServerName; GO
J'ai également appris que SERVERPROPERTY ('ServerName') est censé retourner le nom de l'ordinateur, alors j'ai pensé que je pourrais peut-être l'utiliser pour automatiser la deuxième partie, mais cela n'a pas fonctionné:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
J'ai essayé de définir une variable, ce que je dois faire de toute façon pour mettre à jour les travaux de l'Agent SQL, mais cela n'a pas fonctionné non plus:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
Syntaxe incorrecte près de 'sp_addserver'.
J'aimerais beaucoup ne pas avoir à coder en dur le nouveau nom de serveur dans le script, pour le rendre plus facilement réutilisable. Quelqu'un a des idées?