zoukankan      html  css  js  c++  java
  • 曲苑杂坛--修改数据库名和文件组名

    /*
    该脚本示例如何完整的修改一个数据库的名称.
    数据库为原名称为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:DATADB_BEIJING.mdf' , 
        SIZE = 3072KB , 
        FILEGROWTH = 1024KB 
    )
    LOG ON 
    ( 
        NAME = N'DB_BEIJING_log', 
        FILENAME = N'W:LogDB_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:DATADB_BEIJING.mdf        ROWS        ONLINE
    DB_BEIJING_log    W:LogDB_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:DATADB_BEIJING.mdf", "DB_SHANGHAI.mdf"'
    GO
    EXEC xp_cmdshell 'RENAME "W:LogDB_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:DATADB_SHANGHAI.mdf')
    GO
    ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI_log, FILENAME = 'W:LOGDB_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:DATADB_SHANGHAI.mdf        ROWS        ONLINE
    DB_SHANGHAI_log    W:LOGDB_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
    
    -------------------------
    --摘抄自:http://www.cnblogs.com/nzperfect/archive/2012/12/19/2825298.html
  • 相关阅读:
    [BZOJ 4034][HAOI2015]树上操作(欧拉序列+线段树)
    [BZOJ 4318]OSU!(期望dp)
    [Codeforces Round #146 (Div. 1) B]Let's Play Osu!(期望Dp)
    [Codeforces Round #261 (Div. 2) E]Pashmak and Graph(Dp)
    [Codeforces Round #301 (Div. 2) D]Bad Luck Island(概率Dp)
    [Codeforces Round #284 (Div. 1) B]Name That Tune(概率Dp)
    [UVALive 7143]Room Assignment(Dp)
    [BZOJ 1076][SCOI2008]奖励关(期望+状压Dp)
    【DBMS HKUST slides8】范式及分解算法 知识点总结
    【DBMS HKUST slides1~6】数据库管理系统 知识点总结
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3524348.html
Copyright © 2011-2022 走看看