我使用这个查询重命名数据库:

ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]

但它在执行时显示一个错误:

呼叫5030,16层,状态2,1线 数据库无法被排他锁定以执行该操作。

我的查询有什么问题吗?


当前回答

对我来说,我不能重命名数据库的原因是因为有活动连接。 我只是先使数据库脱机,然后勾选“删除所有活动连接”。 然后再次联机,我就可以重命名数据库了。

其他回答

这是因为其他人正在访问数据库。将数据库设置为单用户模式,然后重命名它。

这个链接可能会有帮助: http://msdn.microsoft.com/en-IN/library/ms345378 (v = sql.105) . aspx

还有: http://msdn.microsoft.com/en-us/library/ms345378.aspx

关闭所有连接的另一种方法:

管理工具>查看本地服务

停止/启动“SQL Server (MSSQLSERVER)”服务

1.数据库设置第一个单用户模式

修改数据库bosevikram,设置single_user立即回滚

2.重命名数据库

修改数据库名称= [bosevikram_delete]

3.数据库设置多用户模式

修改数据库回滚立即的多用户

这对我来说很管用:

USE [master];
GO
ALTER DATABASE [OldDataBaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_renamedb N'OldDataBaseName', N'NewDataBaseName';


-- Add users again
ALTER DATABASE [NewDataBaseName] SET MULTI_USER
GO

首先尝试关闭数据库的所有连接:

use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]

ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER

从这里开始