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

ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]

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

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

我的查询有什么问题吗?


当前回答

SQL Server Management Studio (SSMS)中:

你也可以在对象资源管理器中右键单击你的数据库,然后转到属性。从那里,进入选项。向下滚动并将限制访问设置为SINGLE_USER。更改数据库名称,然后返回并将其设置为MULTI_USER。

其他回答

use master

ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE  

exec sp_renamedb 'BOSEVIKRAM','BOSEVIKRAM_Deleted'

ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER

您可以尝试将数据库设置为单用户模式。

https://stackoverflow.com/a/11624/2408095

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

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

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

2.重命名数据库

修改数据库名称= [bosevikram_delete]

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

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

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

将数据库设置为single模式: 修改数据库dbName 将single_user设置为立即回滚 尝试重命名数据库: 修改数据库dbName = NewName 设置数据库为多用户模式: ALTER DATABASE NewName 将multi_user设置为立即回滚