Comment renommer une instance SQL Server 2008?

28

Comment renommer une instance SQL Server 2008 sans réinstaller?

Par exemple, si la base de données est référencée comme "MySQLServer \ MSSQL2008", comment puis-je renommer "MySQLServer \ SQL2008"?

Scott Marlowe
la source

Réponses:

31

Je ne pense pas qu'il soit possible de renommer sans installer.

Il y a des traces laissées au nom dans quelques bases de données internes telles que la réplication et vous pouvez trouver des erreurs plus tard.

Si vous le pouvez, à moins que vous n'ayez plus d'une instance, il vaut mieux réinstaller puis réimporter toutes vos bases de données.

William Hilsum
la source
3
Wil a raison. Il n'y a aucun moyen de renommer l'instance. Vous devez désinstaller l'instance, puis installer une nouvelle instance. (Ou installez la nouvelle instance, déplacez les bases de données vers la nouvelle instance, puis désactivez ou désinstallez l'ancienne instance).
mrdenny
faire la désinstallation puis la réinstallation avec une instance nommée n'est pas vraiment très difficile. il suffit de conserver le répertoire Data (et peut-être le répertoire Backups) dans l'ancienne instance.
djangofan
9

Je sais que ce script est omniprésent sur le net, mais chaque fois que je le recherche sur Google, je trouve des proc stockés élaborés qui sont exagérés pour mes besoins - voici donc les commandes nécessaires pour renommer une instance SQL Server, pour la postérité:

  • Obtenez le nom actuel de l'instance SQL Server pour une comparaison ultérieure.
    SELECT @@servername
  • Supprimez le serveur de la liste des serveurs distants et liés connus sur l'instance locale de SQL Server.
    EXEC master.dbo.sp_dropserver ‘[SERVER NAME]‘
  • Définissez le nom de l'instance locale de SQL Server.
    EXEC master.dbo.sp_addserver ‘[NEW SERVER NAME]‘, ‘local’
  • Obtenez le nouveau nom de l'instance SQL Server pour comparaison. SELECT @@servername

Et quelques notes relatives à leur utilisation:
sp_dropserver :

  1. Cette procédure stockée peut supprimer les serveurs distants et liés;
  2. L'utilisation du paramètre droplogins indique que les connexions au serveur distant et lié associées pour [NOM DU SERVEUR] doivent également être supprimées.

sp_addserver :

  1. Pour définir un serveur lié, utilisez sp_addlinkedserver (car cette fonctionnalité sera dépréciée dans la version supérieure à SQL Server 2005);
  2. sp_addserver ne peut pas être utilisé dans une transaction définie par l'utilisateur.

Je recommanderais également les éléments suivants lors du changement de nom d'un serveur SQL:
Si vous effectuez cette tâche dans le cadre d'un changement de nom de machine, renommez d'abord la machine, puis renommez le serveur SQL. Une fois que vous avez renommé SQL Server, effectuez un redémarrage complet de SQLServer, y compris tout service dépendant.

J'ai obtenu ces informations à partir du lien ci-dessous:

https://web.archive.org/web/20141116031942/http://modhul.com/2008/01/15/renaming-a-sql-server-instance/

Charles Roper
la source
1

Juste une petite note que vous pouvez ajouter un "alias" et l'utiliser sous les deux noms:

entrez la description de l'image ici

jitbit
la source
0

select @@servername affichera le nouveau nom mais le nom du serveur dans ERRORLOG affichera l'ancien nom et vous ne pouvez pas vous connecter en utilisant le nouveau nom.

La seule solution est de réinstaller.

Ben
la source
-4

Vous souhaitez utiliser ALTER DATABASE.

http://msdn.microsoft.com/en-us/library/ms174269.aspx

Dans cette situation, pour votre exemple ci-dessus, j'essaierais:

ALTER DATABASE MSSQL2008 MODIFY NAME = 'SQL2008'

Bonne chance!

Nicolas Webb
la source
6
Je pense que cela concerne la modification d'un nom de base de données plutôt que l'instance de SQL Server
William Hilsum
ouais ... Je veux renommer l'instance du moteur de serveur SQL, pas seulement un nom de table ou de base de données.
Scott Marlowe
Vous avez raison. Et je suis d'accord avec @Wil - je ne suis pas au courant d'un moyen de le faire sans réinstallation.
Nicolas Webb