我使用这个查询重命名数据库:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
但它在执行时显示一个错误:
呼叫5030,16层,状态2,1线 数据库无法被排他锁定以执行该操作。
我的查询有什么问题吗?
我使用这个查询重命名数据库:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
但它在执行时显示一个错误:
呼叫5030,16层,状态2,1线 数据库无法被排他锁定以执行该操作。
我的查询有什么问题吗?
当前回答
use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE
exec sp_renamedb 'BOSEVIKRAM','BOSEVIKRAM_Deleted'
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER
其他回答
这是因为其他人正在访问数据库。将数据库设置为单用户模式,然后重命名它。
这个链接可能会有帮助: http://msdn.microsoft.com/en-IN/library/ms345378 (v = sql.105) . aspx
还有: http://msdn.microsoft.com/en-us/library/ms345378.aspx
use master
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER WITH ROLLBACK IMMEDIATE
exec sp_renamedb 'BOSEVIKRAM','BOSEVIKRAM_Deleted'
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER
首先尝试关闭数据库的所有连接:
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
从这里开始
对我来说,我不能重命名数据库的原因是因为有活动连接。 我只是先使数据库脱机,然后勾选“删除所有活动连接”。 然后再次联机,我就可以重命名数据库了。
您可以尝试将数据库设置为单用户模式。
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