2012-06-13 47 views
13

我正在開發SQL SERVER 2008 & 2008 R2。 如何在多用戶模式下重命名數據庫? 我使用sp_rename但它返回此錯誤:如何在多用戶模式下重命名數據庫

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

+2

因此,人們不要」的名義不必記住哪些錯誤號碼與什麼錯誤信息一起出現,下次您可以請包括錯誤信息的*文本*和您正在使用的語法?我相信很多人都認爲'Msg 15225'是'數據庫不能被專門鎖定來執行操作。' –

回答

31

,而它在使用時無法重命名數據庫。要麼等待維護窗口,或強制數據庫爲單用戶模式(這會踢大家了):

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

我剛剛嘗試過,我可以在MULTI_USER模式下重命名數據庫。 –

+2

@VikrantMore您可能可以在多用戶模式下重命名數據庫,但*只有*如果沒有任何用戶連接到它。重命名會因要求single_user訪問而被阻止,而不僅僅是因爲它的模式。如果您嘗試重命名正在使用的數據庫,您將收到錯誤消息5030。 –

+6

別忘了'ALTER DATABASE bar SET MULTI_USER;' – Myster

6

不能使用sp_rename重命名數據庫 - 有問題的SP將被sp_renamedb對。然而,這是在網上在SQL Server的未來版本中被刪除,而最好的方法是:

ALTER DATABASE dbname MODIFY NAME = newdbname; 

但你不能沒有對數據庫的排它鎖做到這一點呢。

+0

+ 1明確優於'sp_renamedb'。 –

0

你可以打開sql服務器配置管理器並停止並啓動服務,這對我來說用sql server 2008和2012就好了。

然後在sql server management studio中重命名數據庫。

「爲我的作品」

不是一個真正的「警告」,但說要恢復完全相同的數據庫,你進入選擇和改變MDF和LDF

相關問題