数据库重命名时出错

时间:2013-02-15 04:40:57

标签: sql database sql-server-2008

我需要重命名我的一个数据库并尝试这样的查询

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.

任何人都可以给我任何建议吗?

3 个答案:

答案 0 :(得分: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 :(得分:0)

您需要调查几件事。您收到该错误的原因可能是由于以下一项或多项原因造成的:

  1. 您使用的帐户无权运行命令
  2. 数据库被另一个进程/用户锁定
  3. 数据库包含一个只读的文件组
  4. 您可以尝试强制单用户模式检查2.

    ALTER DATABASE SINGLE_USER ROLLBACK IMMEDIATE.

    这将终止与数据库的任何并发连接,允许您排除第二。

答案 2 :(得分:0)

您有两种选择:

  1. 寻找并杀死所有连接,如OMG Priories建议
  2. 按照此处所述以单服务器模式打开数据库: http://technet.microsoft.com/en-us/library/ms345598(v=sql.105).aspx