zoukankan      html  css  js  c++  java
  • MS SQL 多连接数时修改数据库名称

    在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选项。然后执行上面语句,即可修改数据库名称。

    clip_image002[4]

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

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

    clip_image002

  • 相关阅读:
    运用jQuery实现动态点赞
    $scope作用及模块化解决全局问题
    angular数据绑定---js全局学习
    HDU 2102 A计划 (深搜)
    ffmpeg 常用命令汇总
    基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案
    Linux 下编写.sh文件运行JAR下的Class
    如何帮助团队完成一个优秀的API文档,Swagger和Spring Rest Docs两个都是十分优秀的工具!...
    你关心的学历问题在这里
    北京一二线大厂以及程序员层级分布
  • 原文地址:https://www.cnblogs.com/colder/p/4152370.html
Copyright © 2011-2022 走看看