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?
la source
Réponses:
Voici un script pour faire ce que vous voulez:
Crédits: http://www.myitforum.com/articles/5/view.asp?id=4983
la source
Avec l'aide de magma et de Sankar Reddy, voici le script fini:
L'article que le magma a trouvé contenait une petite erreur, à savoir qu'il essayait de supprimer le nouveau nom et d'ajouter l'ancien nom au lieu de supprimer l'ancien nom et d'ajouter le nouveau nom. J'ai également ajouté une requête de mise à jour pour corriger les travaux de l'agent SQL. Notez que cela ne fonctionne correctement qu'avec le serveur maître dans un environnement multi-serveurs. Mon environnement est un environnement à serveur unique, il fonctionne donc dans ma situation.
la source
la source