2013-02-15 104 views
0

我需要重新命名我的數據庫之一,並試圖像這樣錯誤在數據庫重命名

ALTER DATABASE Test MODIFY NAME = NewTest 

查詢但這會引發錯誤

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

任何一個能給我什麼建議嗎?

+1

使用活動監視器來關閉要重命名的數據庫的任何現有連接? – 2013-02-15 04:43:53

回答

2

試着這麼做;

USE master 
GO 
ALTER DATABASE Test 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE 
GO 
ALTER DATABASE Test MODIFY NAME = NewTest 
GO 
ALTER DATABASE NewTest 
SET MULTI_USER 
GO 

請注意,這可能不會重命名硬盤上的物理文件。

+1

查詢爲我工作得很好。但我認爲你需要改變它一點點ALTER DATABASE測試設置MULTI_USER需要更改爲ALTER DATABASE NewTest SET MULTI_USER – Athul 2013-02-15 05:13:15

+0

而且你可以給我任何建議重命名物理文件 – Athul 2013-02-15 05:15:12

+1

很對AKS!發現得好!很高興它爲你工作,但! – PGallagher 2013-02-15 05:15:28

0

有幾件事情需要調查。原因你得到這個錯誤可能是由於一個或多個以下的事情:

  1. 你使用的是不具有運行該命令的權限帳戶
  2. 的DB被另一個進程鎖定/用戶
  3. 數據庫包含只讀

你可以嘗試,並迫使單用戶模式來檢查文件組2

ALTER DATABASE SINGLE_USER ROLLBACK IMMEDIATE.

這將殺死任何併發連接到數據庫,讓您排除第二。