2012-06-13 5 views
13

Ich arbeite an SQL Server 2008 & 2008 R2. Wie kann ich eine Datenbank im Mehrbenutzermodus umbenennen? Ich verwende sp_rename aber es gibt diesen Fehler zurück:Wie umbenennen Datenbank im Multi-User-Modus

Msg 15225, Level 11, State 1, Procedure sp_rename, Line 338

+2

So ‚Menschen don t müssen Sie sich merken, welche Fehlernummern mit welchen Fehlermeldungen verbunden sind, können Sie beim nächsten Mal den * Text * der Fehlermeldung und die von Ihnen verwendete Syntax angeben? Ich bin sicher, dass viele Leute angenommen haben, dass "Msg 15225" war "Die Datenbank konnte nicht ausschließlich gesperrt werden, um die Operation durchzuführen." –

Antwort

31

Sie können eine Datenbank nicht umbenennen, während es in Betrieb ist. Warten Sie entweder für ein Wartungsfenster, oder zwingen die Datenbank im Single-User-Modus (die alle aus kick):

USE [master]; 
GO 
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 
--EXEC sys.sp_renamedb @dbname = N'foo', @newname = N'bar'; 
ALTER DATABASE foo MODIFY NAME = bar; -- preferred way 
GO 
ALTER DATABASE bar SET MULTI_USER; 
+0

Ich habe gerade versucht, ich bin in der Lage, db im MULTI_USER-Modus umbenennen. –

+2

@VikrantMöglicherweise können Sie die Datenbank umbenennen, während sie sich im Mehrbenutzermodus befindet, aber * nur *, wenn keine Benutzer mit ihr verbunden sind. Das Umbenennen wird blockiert, indem der Zugriff auf single_user erforderlich ist, und nicht unbedingt aufgrund des Modus, in dem es sich befindet. Wenn Sie versuchen, eine verwendete Datenbank umzubenennen, erhalten Sie den Fehler Msg 5030. –

+6

vergiss nicht die 'ALTER DATABASE-Leiste SET MULTI_USER;' – Myster

6

Sie können sp_rename nicht verwenden, um eine Datenbank zu benennen - die sp in Frage sp_renamedb würde. das heißt im Einklang jedoch wird in einer zukünftigen Version von SQL Server entfernt und die bevorzugte Methode ist:

ALTER DATABASE dbname MODIFY NAME = newdbname; 

Aber man kann das nicht sowieso ohne eine exklusive Sperre für die Datenbank.

+0

+1 definitiv bevorzugt über 'sp_renamedb'. –

0

Sie können SQL Server Konfigurationsmanager öffnen und stoppen und starten Sie den Dienst, das funktioniert für mich mit SQL Server 2008 und 2012 ganz gut.

Benennen Sie die Datenbank dann im sql Server Management Studio um.

„Works for me“

nicht wirklich eine „Einschränkung“ aber sagen Sie genau die gleiche Datenbank wiederherstellen möchten, gehen Sie in die Optionen und den Namen der MDF- und LDF ändern