MsSql
主页 > 数据库 > MsSql >

SQL Server修改数据库名称的常用方法

2025-10-16 | 佚名 | 点击:

一、 准备工作

改名时如果有其他用户会话连接该数据库会报错,必须先杀掉那些用户会话或使数据库处于单用户模式下再执行。

查询当前有哪些会话连接到这个数据库

1

SELECT SPID FROM master.dbo.sysprocesses WHERE dbid=DB_ID('Test1');

如果有,执行KILL命令杀掉

1

KILL SPID

也可以将数据库设置为单用户模式。在数据库属性 -> “连接”页面 找到“限制访问”选项,选择SIGLE_USER。

clip_image002[4]

命令行

1

2

3

4

5

6

use master

-- 设置单用户

exec sp_dboption  @dbname='OldDbName', @optname= 'Single User',@optvalue= 'TRUE'

-- 恢复多用户

exec sp_dboption  @dbname='NewDbName', @optname= 'Single User', @optvalue='FALSE'

GO

二、 修改数据库名称

1. 图形界面修改

clip_image002

2. ALTER DATABASE

1

2

3

4

USE master;

GO

ALTER DATABASE Test1 MODIFY NAME = Test;

GO

或者设置为单用户模式再改

1

2

3

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

1

2

3

4

use master

go

exec sp_renamedb @dbname='Test_1', @newname='Test';

go

直接利用脚本修改

1

2

3

4

5

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

检查修改成功

1

SELECT name, database_id FROM sys.databases WHERE name = N'DbName';

原文链接:
相关文章
最新更新