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'exécution:
Msg 5030, niveau 16, état 2, ligne 1
La base de données n'a pas pu être verrouillée exclusivement pour effectuer l'opération.
Y a-t-il un problème avec ma requête?
sql
sql-server
sql-server-2008-r2
Vikram Bose
la source
la source
Réponses:
Vous pouvez essayer de définir la base de données en mode mono-utilisateur.
https://stackoverflow.com/a/11624/2408095
la source
WITH ROLLBACK IMMEDIATE
nécessaire. Si je ne l'utilise pas du tout, cela posera-t-il des problèmes?WITH ROLLBACK IMMEDIATE
lors de la modification d'une base de données sur laquelle d'autres utilisateurs pourraient opérer, afin de garantir l'intégrité de ces opérations. Mais ce n'est pas vraiment nécessaire pour remettre la base de données en mode MULTI_USER car la base de données est déjà en mode SINGLE_USER et vous êtes le seul utilisateur capable d'exécuter des transactions de toute façon.Réglez la base de données en mode unique:
Essayez de renommer la base de données:
Définissez la base de données en mode multi-utilisateur:
la source
WITH ROLLBACk IMMEDIATE
pour multi-utilisateur?Dans SQL Server Management Studio (SSMS) :
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 vers le bas et définissez Restreindre l'accès à SINGLE_USER . Modifiez le nom de votre base de données, puis revenez et définissez-le sur MULTI_USER .
la source
Essayez d'abord de fermer toutes les connexions à votre base de données:
Pris d' ici
la source
Cela l'a fait pour moi:
la source
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:
http://msdn.microsoft.com/en-IN/library/ms345378(v=sql.105).aspx
et aussi:
http://msdn.microsoft.com/en-us/library/ms345378.aspx
la source
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 en cours d'utilisation.
Pour fermer une connexion même après la conversion en mode mono-utilisateur, essayez:
Regardez les résultats et voyez 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 y en avoir qu'une car la base de données est maintenant en mode mono-utilisateur)
Remplacez connection_id par l'ID dans les résultats de la première requête
la source
1. base de données définie le premier mode utilisateur unique
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER AVEC ROLLBACK IMMEDIATE
2. RENOMMER LA BASE DE DONNÉES
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3.DATABAE SET MULIUSER MODE
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER WITH ROLLBACK IMMEDIATE
la source
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)"
la source
la source