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
  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3524348.html
Copyright © 2011-2022 走看看