视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MSSQL修改数据库名称
2020-11-09 10:09:20 责编:小采
文档


在MS SQL中,如果你想修改某一个数据库的名称,你可以通过下面几种方法实现。 方法一:使用SP_RENAMEDB系统存储过程实现。 语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name' 例子: 我需要将数据库Test_1的名称修改为Test use mast

在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,单击右键,美国空间,选择”重命名”;注意如果有其他用户会话连接该数据库则会报错,必须先杀掉那些会话进程或使数据库处于单用户模式下,再执行上面操作,否则会报错。

下载本文
显示全文
专题