it-swarm.com.de

Fehler beim Umbenennen der Datenbank in SQL Server 2008 R2

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?

136
Vikram Bose

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
273
Squid
  1. Setzen Sie die Datenbank in den Einzelmodus: 

    ALTER DATABASE dbName
    SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    
  2. Versuchen Sie, die Datenbank umzubenennen:

    ALTER DATABASE dbName MODIFY NAME = NewName
    
  3. Setzen Sie die Datenbank in den Mehrbenutzermodus:

    ALTER DATABASE NewName
    SET MULTI_USER WITH ROLLBACK IMMEDIATE
    
47
Samiey Mehdi

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

18
Andrey Gordeev

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.

16

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

3
Dhwani

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
2
t_plusplus

Ä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

2
slayernoah

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

1
K GANGA

Eine andere Möglichkeit, alle Verbindungen zu schließen:

Verwaltungstools> Lokale Dienste anzeigen

Beenden Sie den Dienst "SQL Server (MSSQLSERVER)"

0
Chronozoa
  1. Setzen Sie die Datenbank in den Einzelmodus:

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)

0
Tahir77667
use master

ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE  

exec sp_renamedb 'BOSEVIKRAM','BOSEVIKRAM_Deleted'

ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER
0
KamalDeep