J'utilise cette requête pour renommer la base de données:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Mais cela montre une erreur lors de l’excursion:
Msg 5030, niveau 16, état 2, ligne 1
La base de données ne peut pas être exclusivement verrouillée pour effectuer l'opération.
Quelque chose ne va pas avec ma requête?
Vous pouvez essayer de définir la base de données en mode mono-utilisateur.
https://stackoverflow.com/a/11624/2408095
use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER
Définissez la base de données en mode unique:
ALTER DATABASE dbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Essayez de renommer la base de données:
ALTER DATABASE dbName MODIFY NAME = NewName
Définissez la base de données en mode multi-utilisateur:
ALTER DATABASE NewName
SET MULTI_USER WITH ROLLBACK IMMEDIATE
Essayez de fermer toutes les connexions à votre base de données en premier:
use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER
Tiré de ici
Vous pouvez également cliquer avec le bouton droit sur votre base de données dans l'Explorateur d'objets et accéder à Propriétés. De là, allez dans Options. Faites défiler à fond et définissez Restreindre l'accès sur SINGLE_USER. Changez le nom de votre base de données, puis revenez dans et réglez-le sur MULTI_USER.
C'est parce que quelqu'un d'autre accède à la base de données .. Mettez la base de données en mode mono-utilisateur puis renommez-la.
Ce lien peut vous aider à résoudre le problème: http://msdn.Microsoft.com/en-IN/library/ms345378(v=sql.105).aspx lien: http://msdn.Microsoft.com/en-us/library/ms345378.aspx
Cela l'a fait pour moi:
USE [master];
GO
ALTER DATABASE [OldDataBaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_renamedb N'OldDataBaseName', N'NewDataBaseName';
-- Add users again
ALTER DATABASE [NewDataBaseName] SET MULTI_USER
GO
Changer la base de données en mode mono-utilisateur comme indiqué dans les autres réponses
Parfois, même après la conversion en mode mono-utilisateur, la seule connexion autorisée à la base de données peut être utilisée.
Pour fermer une connexion même après la conversion en mode mono-utilisateur, essayez:
select * from master.sys.sysprocesses
where spid>50 -- don't want system sessions
and dbid = DB_ID('BOSEVIKRAM')
Examinez les résultats et consultez l'ID de la connexion à la base de données en question.
Ensuite, utilisez la commande ci-dessous pour fermer cette connexion (il ne devrait en exister qu'une, car la base de données est maintenant en mode mono-utilisateur)
KILL connection_ID
Remplacer connection_id par l'ID dans les résultats de la 1ère requête
1.Base de données définie 1er mode mono-utilisateur
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER AVEC ROLLBACK IMMEDIATE
2.NOMMER LA BASE DE DONNEES
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3.MODE DE CONFIGURATION MODE MULIUSER
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER AVEC ROLLBACK IMMEDIATE
Une autre façon de fermer toutes les connexions:
Outils d'administration> Afficher les services locaux
Arrêter/Démarrer le service "SQL Server (MSSQLSERVER)"
ALTER DATABASE dbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Cette instruction SQL modifiera le contrôle d'accès de la base de données de plusieurs utilisateurs à un seul utilisateur (c'est-à-dire vous) et fera de vous l'unique utilisateur de la base de données. Vous pouvez maintenant modifier le nom de votre base de données.
2. Nommez la base de données:
ALTER DATABASE dbName MODIFY NAME = NewName
Cette déclaration SQL effectue le travail crucial pour changer votre nom de base de données en un nom de votre choix.
3.Réglez la base de données en mode multi-utilisateur:
ALTER DATABASE NewName
SET MULTI_USER WITH ROLLBACK IMMEDIATE
Après avoir changé notre nom de base de données, nous modifions simplement le contrôle d’accès à son emplacement actuel, qui est par défaut Multi_user.
Remarque: Si des erreurs subsistent, lisez cet article pour référence ultérieure Comment: renommer une base de données (Sql Server Management Studio)
use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE
exec sp_renamedb 'BOSEVIKRAM','BOSEVIKRAM_Deleted'
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER