• 如何完整的修改一个数据库的名称


    /*
    该脚本示例如何完整的修改一个数据库的名称.
    数据库为原名称为DB_BEIJING,需要修改成DB_SHANGHAI
    nzperfect 2012.12.19
    */
    
    --判断是否存在同名的数据库,以防止误删除
    USE master
    GO
    IF EXISTS (SELECT name FROM sys.databases WHERE name = N'DB_BEIJING')
    BEGIN
        RAISERROR('请注意:数据库已存在!',15,1)
        RETURN
        --DROP DATABASE DB_BEIJING
    END
    GO
    
    
    USE master
    GO
    --创建测试数库
    CREATE DATABASE [DB_BEIJING] 
    ON PRIMARY 
    ( 
        NAME = N'DB_BEIJING', 
        FILENAME = N'X:\DATA\DB_BEIJING.mdf' , 
        SIZE = 3072KB , 
        FILEGROWTH = 1024KB 
    )
    LOG ON 
    ( 
        NAME = N'DB_BEIJING_log', 
        FILENAME = N'W:\Log\DB_BEIJING_log.ldf' , 
        SIZE = 1024KB , 
        FILEGROWTH = 1024KB 
    )
    GO
    
    --以下为修改过程
    
    --step 1 : 修改数据库名称
    USE master
    GO
    ALTER DATABASE DB_BEIJING SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    EXEC master..sp_renamedb 'DB_BEIJING','DB_SHANGHAI'
    GO
    ALTER DATABASE DB_SHANGHAI SET MULTI_USER 
    GO
    
    --step 2 : 查看修改名称后的数据库逻辑名及物理文件名
    USE master
    GO
    SELECT name AS [Logical Name], physical_name AS [DB File Path],type_desc AS [File Type],
    state_desc AS [State] FROM sys.master_files
    WHERE database_id = DB_ID(N'DB_SHANGHAI')
    GO
    /*
    Logical Name    DB File Path                File Type    State
    DB_BEIJING        X:\DATA\DB_BEIJING.mdf        ROWS        ONLINE
    DB_BEIJING_log    W:\Log\DB_BEIJING_log.ldf    LOG            ONLINE
    */
    
    --step 3 : 修改数据库逻辑文件名称
    USE master
    GO
    ALTER DATABASE DB_SHANGHAI SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N'DB_BEIJING', NEWNAME=N'DB_SHANGHAI')
    GO
    ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N'DB_BEIJING_log', NEWNAME=N'DB_SHANGHAI_log')
    GO
    ALTER DATABASE DB_SHANGHAI SET MULTI_USER 
    GO
    
    --step 4 : 修改数据库物理文件名称之前先打开xp_cmdshell支持
    USE master
    GO
    sp_configure 'show advanced options',1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    sp_configure 'xp_cmdshell', 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    
    --step 5 : 重命名数据库物理文件名称
    USE [master]
    GO
    ALTER DATABASE DB_SHANGHAI SET OFFLINE WITH ROLLBACK IMMEDIATE
    GO
    EXEC xp_cmdshell 'RENAME "X:\DATA\DB_BEIJING.mdf", "DB_SHANGHAI.mdf"'
    GO
    EXEC xp_cmdshell 'RENAME "W:\Log\DB_BEIJING_log.ldf", "DB_SHANGHAI_log.ldf"'
    GO
    
    --step 6 : 将数据库逻辑名称指向新的物理文件,并将数据库online
    USE [master]
    GO
    ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI, FILENAME = 'X:\DATA\DB_SHANGHAI.mdf')
    GO
    ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI_log, FILENAME = 'W:\LOG\DB_SHANGHAI_log.ldf')
    GO
    ALTER DATABASE DB_SHANGHAI SET ONLINE
    
    --step 7 : 查看全部修改完成后的数据库情况
    USE master
    GO
    SELECT name AS [Logical Name], physical_name AS [DB File Path],type_desc AS [File Type],
    state_desc AS [State] FROM sys.master_files
    WHERE database_id = DB_ID(N'DB_SHANGHAI')
    GO
    /*
    Logical Name    DB File Path                File Type    State
    DB_SHANGHAI        X:\DATA\DB_SHANGHAI.mdf        ROWS        ONLINE
    DB_SHANGHAI_log    W:\LOG\DB_SHANGHAI_log.ldf    LOG            ONLINE
    */
    
    --step 8 : 关闭xp_cmdshell支持
    USE master
    GO
    sp_configure 'xp_cmdshell', 0
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    sp_configure 'show advanced options',0
    GO
    RECONFIGURE WITH OVERRIDE
    GO


    作者:nzperfect
    出处:http://www.cnblogs.com/nzperfect/
    引用或者转载本BLOG的文章请注明原作者和出处,并保留原文章中的版权信息。

  • 相关阅读:
    MySQL的图形化安装
    java笔记整理
    运动会报名系统的简易实现
    JDBC知识点总结
    MySQL常用知识总结
    python的传参数用法
    R统计数据框的行数
    SAINT学习笔记
    win10 双网卡设置内网和外网同时访问
    根据GSVA结果绘制不同组的趋势图
  • 原文地址:https://www.cnblogs.com/nzperfect/p/2825298.html
Copyright © 2020-2023  润新知