Ich verwende diese Abfrage, um die Datenbank umzubenennen:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Aber es zeigt einen Fehler beim Ausführen:
Meldung 5030, Ebene 16, Status 2, Zeile 1
Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden.
Stimmt etwas mit meiner Anfrage nicht?
sql
sql-server
sql-server-2008-r2
Vikram Bose
quelle
quelle
Antworten:
Sie können versuchen, die Datenbank auf den Einzelbenutzermodus einzustellen.
https://stackoverflow.com/a/11624/2408095
quelle
WITH ROLLBACK IMMEDIATE
notwendig. Wenn ich es überhaupt nicht benutze, wird es Probleme verursachen?WITH ROLLBACK IMMEDIATE
beim Ändern einer Datenbank, mit der andere Benutzer möglicherweise arbeiten, diese verwenden, um die Integrität dieser Vorgänge sicherzustellen. Dies ist jedoch nicht unbedingt erforderlich, wenn die Datenbank wieder in den MULTI_USER-Modus versetzt wird, da sich die Datenbank bereits im SINGLE_USER-Modus befindet und Sie der einzige Benutzer sind, der ohnehin Transaktionen ausführen kann.Stellen Sie die Datenbank auf Einzelmodus ein:
Versuchen Sie, die Datenbank umzubenennen:
Stellen Sie die Datenbank auf den Mehrbenutzermodus ein:
quelle
WITH ROLLBACk IMMEDIATE
für Mehrbenutzer verwenden?In SQL Server Management Studio (SSMS) :
Sie können auch im Objekt-Explorer mit der rechten Maustaste auf Ihre Datenbank klicken und zu Eigenschaften wechseln . Gehen Sie von dort zu Optionen . Scrollen Sie ganz nach unten und setzen Sie Restrict Access auf SINGLE_USER . Ändern Sie Ihren Datenbanknamen, gehen Sie zurück und setzen Sie ihn wieder auf MULTI_USER .
quelle
Versuchen Sie zuerst, alle Verbindungen zu Ihrer Datenbank zu schließen:
Von hier genommen
quelle
Das hat es für mich getan:
quelle
Das liegt daran, dass jemand anderes auf die Datenbank zugreift. Versetzen Sie die Datenbank in den Einzelbenutzermodus und benennen Sie sie um.
Dieser Link könnte helfen:
http://msdn.microsoft.com/en-IN/library/ms345378(v=sql.105).aspx
und auch:
http://msdn.microsoft.com/en-us/library/ms345378.aspx
quelle
Ändern Sie die Datenbank in den Einzelbenutzermodus, wie in den anderen Antworten gezeigt
Manchmal wird auch nach der Konvertierung in den Einzelbenutzermodus die einzige zulässige Verbindung zur Datenbank verwendet.
Versuchen Sie Folgendes, um eine Verbindung auch nach der Konvertierung in den Einzelbenutzermodus zu schließen:
Sehen Sie sich die Ergebnisse an und sehen Sie die ID der Verbindung zur betreffenden Datenbank.
Verwenden Sie dann den folgenden Befehl, um diese Verbindung zu schließen (es sollte nur eine geben, da sich die Datenbank jetzt im Einzelbenutzermodus befindet).
Ersetzen Sie connection_id durch die ID in den Ergebnissen der ersten Abfrage
quelle
1.Datenbank stellt den 1. Einzelbenutzermodus ein
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER MIT ROLLBACK IMMEDIATE
2. BENENNEN SIE DIE DATENBANK UM
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3.DATABAE SET MULIUSER MODE
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER WITH ROLLBACK IMMEDIATE
quelle
Eine andere Möglichkeit, alle Verbindungen zu schließen:
Verwaltung> Lokale Dienste anzeigen
Beenden / Starten Sie den Dienst "SQL Server (MSSQLSERVER)"
quelle
quelle