平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“SQL Server修改数据库名称的常用做法”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
一、 准备工作
理解这一步时,改名时如果有其他用户会话连接该数据库会报错,必须先杀掉那些用户会话或使数据库处于单用户模式下再执行。
查询当前有哪些会话连接到这个数据库
SELECT SPID FROM master.dbo.sysprocesses WHERE dbid=DB_ID('Test1');如果有,执行KILL命令杀掉
KILL SPID
落到代码里,也能够将数据库设置为单用户模式。在数据库属性 -> “连接”页面 找到“限制访问”选项,选择SIGLE_USER。
![clip_image002[4]](https://images.bobobaike.com/uploads/20260908/img_6a9f5c75443e930.png)
命令行
use master
-- 设置单用户
exec sp_dboption @dbname='OldDbName', @optname= 'Single User',@optvalue= 'TRUE'
-- 恢复多用户
exec sp_dboption @dbname='NewDbName', @optname= 'Single User', @optvalue='FALSE'
GO
二、 修改数据库名称
1. 图形界面修改

2. ALTER DATABASE
USE master;
GO
ALTER DATABASE Test1 MODIFY NAME = Test;
GO
或者设置为单用户模式再改
ALTER DATABASE db名 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE 旧db名 MODIFY NAME = 新db名;
ALTER DATABASE db名 SET MULTI_USER;
3. SP_RENAMEDB系统存储过程
注意:SQL Server 2008后续版本将删除该功能。
语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'
例子: 将数据库Test_1的名称修改为Test
use master
go
exec sp_renamedb @dbname='Test_1', @newname='Test';
go
直接借助脚本修改
use master
exec sp_dboption @dbname='OldDbName', @optname= 'Single User',@optvalue= 'TRUE'
exec sp_renamedb @dbname='OldDbName', @newname= 'NewDbName'
exec sp_dboption @dbname='NewDbName', @optname= 'Single User', @optvalue='FALSE'
GO
检查修改成功
SELECT name, database_id FROM sys.databases WHERE name = N'DbName';
到此这篇关于SQL Server修改数据库名称的常用方法的文章就介绍到这了,更多相关SQL Server修改数据库名称内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
- sqlserver数据库如何修改实例名称
- sqlserver数据库加密后无法采用MDF,LDF,log文件名称被修改的数据恢复
- SQL Server修改数据库名及物理数据文件名操作步骤
- sql server修改数据库文件位置的详细步骤记录