想要修改数据库名,直接右击数据库名选择重命名会报错:无法重命名“mydata”。(ObjectExplorer)其他信息:数据库“myold”的重命名失败,执行Transact-SQL语句或批处理时发生了异常,无法用排他锁锁定该数据库,以执行该操作。
正确的修改方式:
一、右键数据库名,选择 “属性”,在弹出的页面中点击左侧的 “选项”按钮,然后在右侧找到 “状态” 栏下的 “限制访问”,将 “限制访问”的值改为 “SINGLE_USER”,然后点击下方的 “确定” 按钮。
二、使用 master 权限 执行以下 SQL 语句修改数据库名,其中xystglxt替换为你自己的原数据库名,dbnew替换为你想要修改后的数据库名
--使用 master 权限 执行以下 SQL 语句修改数据库名,其中xystglxt替换为你自己的原数据库名,dbnew替换为你想要修改后的数据库名
use master
Exec sp_renamedb'xystglxt','dbnew'
go
三、执行以下SQL语句把数据库相关进程杀掉,其中dbnew为第二步修改后的数据库名。
--执行以下SQL语句把数据库相关进程杀掉,其中dbnew为第二步修改后的数据库名。
USE master;
GO
DECLARE @SQL VARCHAR(3000);
SET @SQL = '';
SELECT @SQL = @SQL+'; KILL ' + RTRIM(SPID)
FROM [sys].[sysprocesses] AS sps
WHERE [sps].[dbid] = DB_ID('dbnew');
SET @SQL = SUBSTRING(@SQL, 2, LEN(@SQL));
EXEC(@SQL);
GO
4、执行以下SQL语句,把数据库权限由单用户设置为多用户,其中其中dbnew为第二步修改后的数据库名。
--执行以下SQL语句,把数据库权限由单用户设置为多用户,其中其中dbnew为第二步修改后的数据库名。
ALTER DATABASE [dbname] SET MULTI_USER
5、退出SQLServer客户端,重新进入即可看到数据库名已修改成功。