博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MS SQL修改数据库名称
阅读量:6276 次
发布时间:2019-06-22

本文共 1263 字,大约阅读时间需要 4 分钟。

在MS SQL中,如果你想修改某一个数据库的名称,你可以通过下面几种方法实现。

 

方法一:使用SP_RENAMEDB系统存储过程实现。

语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'

例子: 我需要将数据库Test_1的名称修改为Test

use master
go
exec
sp_renamedb @dbname=
'Test_1'
, @newname=
'Test'
;
go

 

有时候执行该脚本,会报如下错误:

消息 5030,级别 16,状态 2,第 1 行

无法用排他锁锁定该数据库,以执行该操作。

出现这种情况,主要是还有其它程序或用户连接数据库,你必须确保没有任何用户正在使用数据库. 可以通过将数据库设置为单用户模式。在数据库属性——》“连接”选择里面找到限制访问“选项,选择SIGLE_USER选项。然后执行上面语句,即可修改数据库名称。

当然也可以用脚本解决这个问题,查询看看当前有哪些会话连接到这个数据库,如果没有记录,则可直接执行上面脚本。

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

 否则执行KILL命令杀掉这些会话进程。

KILL SPID

下面这个脚本可以比较好的处理上面问题,不需要你做过多额外操作,直接用脚本完成任务。

 

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 2008后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

方法二:使用ALTER DATABASE语句修改数据库名称。

USE master;
 
GO
 
ALTER
DATABASE
Test1
MODIFY
NAME
= Test;
 
GO

 

方法三:使用Microsoft SQL Server Managment Studio管理工具,选中要修改名称的数据Test1,单击右键,选择”重命名”;注意如果有其他用户会话连接该数据库则会报错,必须先杀掉那些会话进程或使数据库处于单用户模式下,再执行上面操作,否则会报错。

转载地址:http://utwva.baihongyu.com/

你可能感兴趣的文章
性能优化总结(六):预加载、聚合SQL应用实例
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>