SqlServer在单用户模式下修改数据库名称
SqlServer数据库在被使用时是无法改名的,会提示:
无法重命名 xxx。(ObjectExplorer)其他信息:
↳ 重命名 对于 数据库“xxx”失败。(Microsoft.SqlServer.Smo)
↳ 执行 Transact-SQL 语句或批处理时发生了异常。(Microsoft.SqlServer.ConnectionInfo)
↳ 无法用排他锁锁定该数据库,以执行该操作。(Microsoft SQL Server,错误:5030)
此时需要将该数据库修改为单用户模式,然后才可以改名成功。将数据库设置为单用户模式可以使用如下方法:
当然,改名成功之后,还需要将数据库再重新置为多用户状态,这样其他用户才能使用该数据库。
然后你就会发现,诶?右键 -> 属性 打不开了,改不回去了?!
无法显示请求的对话框。其他信息
↳ 无法显示请求的对话框。(SqlMgmt)
↳ 属性 Size 不可用于 数据库“[xxx]”。该对象可能没有此属性,也可能是访问权限不足而无法检索。(Microsoft.SqlServer.Smo)
不要急,界面化操作只是方便而已,我们还有其他办法:
USE [master]
DECLARE @SqlCmd VARCHAR(MAX)
SET @SqlCmd = ''
SELECT @SqlCmd = @SqlCmd + '; KILL ' + RTRIM(SPID)
FROM master..sysprocesses
WHERE DbId = DB_ID('数据库名称')
EXEC(@SqlCmd)
ALTER DATABASE 数据库名称 SET MULTI_USER