SqlServer在单用户模式下修改数据库名称

momo314相同方式共享非商业用途署名转载

 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
✎﹏ 本文来自于 momo314和他们家的猫,文章原创,转载请注明作者并保留原文链接。