SQL Server 修改数据库名称

一、 准备工作

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

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

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

如果有,执行KILL命令杀掉

KILL SPID

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

clip_image002[4]

命令行

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

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';

参考

https://www.cnblogs.com/kerrycode/archive/2013/04/25/3043764.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值