web-dev-qa-db-fra.com

Comment renommer une base de données en mode multi-utilisateur

Je travaille sur SQL SERVER 2008 & 2008 R2. Comment puis-je renommer une base de données en mode multi-utilisateur? J'utilise sp_rename mais il renvoie cette erreur:

Msg 15225, niveau 11, état 1, procédure sp_rename, ligne 338

14
Vikrant More

Vous ne pouvez pas renommer une base de données pendant son utilisation. Attendez une fenêtre de maintenance ou forcez la base de données en mode mono-utilisateur (ce qui exclura tout le monde):

USE [master];
GO
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
--EXEC sys.sp_renamedb @dbname = N'foo', @newname = N'bar';
ALTER DATABASE foo MODIFY NAME = bar; -- preferred way
GO
ALTER DATABASE bar SET MULTI_USER;
33
Aaron Bertrand

Vous ne pouvez pas utiliser sp_rename pour renommer une base de données - le sp en question serait sp_renamedb. Toutefois, cela est en ligne pour être supprimé dans une future version de SQL Server et la méthode préférée est:

ALTER DATABASE dbname MODIFY NAME = newdbname;

Mais vous ne pouvez pas le faire de toute façon sans un verrou exclusif sur la base de données.

6
MartW

Vous pouvez ouvrir le gestionnaire de configuration du serveur SQL et arrêter et démarrer le service. Cela fonctionne pour moi avec SQL Server 2008 et 2012, très bien.

Puis renommez la base de données directement dans le studio de gestion du serveur SQL.

"Travaille pour moi"

Pas vraiment une "mise en garde" mais dites que vous voulez restaurer exactement la même base de données, vous allez dans les options et changez le nom du mdf et du ldf

0
user2038230