Ich verwende diese Abfrage, um die Datenbank umzubenennen:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Es zeigt jedoch einen Fehler beim Entschuldigen:
Meldung 5030, Ebene 16, Status 2, Zeile 1
Die Datenbank konnte nicht ausschließlich für die Durchführung der Operation gesperrt werden.
Stimmt etwas nicht mit meiner Anfrage?
Sie könnten versuchen, die Datenbank in den Einzelbenutzermodus zu setzen.
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
Setzen Sie die Datenbank in den Einzelmodus:
ALTER DATABASE dbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Versuchen Sie, die Datenbank umzubenennen:
ALTER DATABASE dbName MODIFY NAME = NewName
Setzen Sie die Datenbank in den Mehrbenutzermodus:
ALTER DATABASE NewName
SET MULTI_USER WITH ROLLBACK IMMEDIATE
Versuchen Sie zuerst, alle Verbindungen zu Ihrer Datenbank zu schließen:
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
Aus hier
Sie können auch im Objekt-Explorer mit der rechten Maustaste auf Ihre Datenbank klicken und zu den Eigenschaften gehen. Von dort gehen Sie zu Optionen. Führen Sie einen Bildlauf ganz nach unten durch und aktivieren Sie die Option Zugriff auf SINGLE_USER beschränken. Ändern Sie Ihren Datenbanknamen, gehen Sie zurück und setzen Sie ihn auf MULTI_USER.
Das ist, weil jemand anderes auf die Datenbank zugreift. Versetzen Sie die Datenbank in den Einzelbenutzermodus und benennen Sie sie um.
Dieser Link kann Ihnen helfen, das Problem zu lösen: http://msdn.Microsoft.com/en-IN/library/ms345378(v=sql.105).aspx Link: http://msdn.Microsoft.com/de-de/library/ms345378.aspx
Das hat es für mich getan:
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
Ändern Sie die Datenbank in den Einzelbenutzermodus, wie in den anderen Antworten gezeigt
Manchmal, selbst nach dem Konvertieren in den Einzelbenutzermodus, wird möglicherweise nur die Verbindung verwendet, die für die Datenbank zulässig ist.
So schließen Sie eine Verbindung auch nach der Umwandlung in den Einzelbenutzermodus:
select * from master.sys.sysprocesses
where spid>50 -- don't want system sessions
and dbid = DB_ID('BOSEVIKRAM')
Sehen Sie sich die Ergebnisse an und sehen Sie die ID der Verbindung zur betreffenden Datenbank.
Dann schließen Sie diese Verbindung mit dem folgenden Befehl (es sollte nur eine geben, da sich die Datenbank jetzt im Einzelbenutzermodus befindet)
KILL Verbindungs-ID
Ersetzen Sie connection_id durch die ID in den Ergebnissen der ersten Abfrage
1. Datenbank 1. Einzelbenutzermodus gesetzt
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 SOFORT
Eine andere Möglichkeit, alle Verbindungen zu schließen:
Verwaltungstools> Lokale Dienste anzeigen
Beenden Sie den Dienst "SQL Server (MSSQLSERVER)"
ALTER DATABASE dbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Diese SQL-Anweisung ändert die Zugriffskontrolle der Datenbank von mehreren Benutzern auf einen einzelnen Benutzer (d. H. Sie) und macht Sie zum einzigen Benutzer der Datenbankbibliothek. Jetzt können Sie den Namen Ihrer Datenbankbibliothek ändern.
2. Benennen Sie die Datenbank:
ALTER DATABASE dbName MODIFY NAME = NewName
Diese SQL-Anweisung führt die entscheidende Arbeit aus, Ihren DB-Namen in einen gewünschten Namen zu ändern.
3.Setzen Sie die Datenbank in den Mehrbenutzermodus:
ALTER DATABASE NewName
SET MULTI_USER WITH ROLLBACK IMMEDIATE
Nachdem wir unseren Datenbanknamen geändert haben, ändern wir einfach die Zugriffskontrolle wieder auf den ursprünglichen Wert (standardmäßig Multi_user).
Hinweis: Wenn weiterhin Fehler auftreten, lesen Sie diesen Artikel, um weitere Informationen zu erhalten. Gewusst wie: Umbenennen einer Datenbank (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