2013-04-05 103 views
1

我有一個數據庫'我的數據庫',我想重命名,以便沒有空格。我試着用數據庫名稱更改SQL失敗Sql Server 2008

use master 
exec sp_renamedb 'I 3 SCI Study','I3SciStudy' 

將其重命名,並與錯誤

Msg 5030, Level 16, State 2, Line 1 
The database could not be exclusively locked to perform the operation. 

這個服務器是我的本地機器,我沒有其他的查詢窗口打開,但在我跑的命名查詢窗口迎了上去。在我可以重命名數據庫之前,是否需要運行某種緊密連接命令?

+3

請參閱[此問題](http://stackoverflow.com/questions/11014343/how-to-rename-database-in-multi-user-mode)和[這一個](http://stackoverflow.com/questions/525185/sql-server-database-locked)。並注意'sp_renamedb' [已棄用](http://msdn.microsoft.com/zh-cn/library/ms186217.aspx)。 – Pondlife 2013-04-05 17:53:26

+1

嘗試將數據庫置於單用戶模式 – Paparazzi 2013-04-05 18:10:18

+0

您可以停止Sql Server SERVICE(控制面板/管理工具/服務),然後嘗試使用它。那肯定會關閉所有連接。 – granadaCoder 2013-04-05 19:41:28

回答

-1

使用SSMS重命名數據庫,這樣做不應該有任何問題。

+0

這是一個相當全面的解決方案,儘管是一種潛在的解決方法。 – Murkantilism 2013-04-05 20:32:26

0

試試這個命令,但建議謹慎:

USE master; 
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 

ALTER DATABASE [dbname] SET MULTI_USER; 
GO 
0

你也可以詢問有關當前活動的鎖管理器資源的信息。

SELECT * 
FROM sys.dm_tran_locks DTL 
WHERE DTL.[resource_database_id] = DB_ID() 

每一行都表示當前正在向鎖管理器請求已激活的或正在等待被授予的鎖。您不僅會看到您對當前數據庫的請求(很可能與resoure_type DATABASE有關)。在鎖定這些資源的同時更改數據庫名稱是不可能的

相關問題