惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
Forbes - Security
Forbes - Security
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
V
Visual Studio Blog
月光博客
月光博客
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
博客园 - 司徒正美
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
P
Proofpoint News Feed
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Latest news
Latest news
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
博客园 - 【当耐特】
B
Blog RSS Feed
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
C
Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security

博客园 - nzperfect

PAGELATCH_EX Contention on 2:1:103 SQL Server AlwaysON 同步模式的疑似陷阱 XEvent – SQL Server Log文件对磁盘的写操作大小是多少 SQL Server Log文件对磁盘的写操作大小是多少 Initializing the FallBack certificate failed . TDSSNIClient initialization failed Error after SQL Server 2012 installation: Login Failure for "SQL Server Integration Services 11.0" SSIS service SQL Server 灾难恢复31天之第6天:管理区分配页损坏处理 SQL Server 灾难恢复31天之第5天:处理损坏的非聚集索引 SQL Server 灾难恢复31天之第3天:在还原数据库时确定需要哪些备份文件 SQL Server 灾难恢复31天之第4天:备份 SQL Server 灾难恢复31天之第2天:包含数据库备份在还原时的保护 SQL Server 灾难恢复31天之第1天:DBCC CHECK命令会自动使用已经存在的数据库快照吗? 发布订阅延迟故障排查案例:分发读进程延迟 Query Hint FAST number_rows 改变SQL Server 执行计划 SQL Server 通过界面生成修改列类型脚本时的一个风险(或Bug) 是什么引起执行计划变得极其糟糕? 应该使用更新统计信息来解决它吗? update值与原值相同时,SQL Server会真的去update还是忽略呢? How can I bring mirror database online after principal server is down ? performance monitor没有SQL Server性能计数器
如何完整的修改一个数据库的名称
nzperfect · 2012-12-19 · via 博客园 - nzperfect

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

Posted on 2012-12-19 17:42  nzperfect  阅读(5044)  评论()    收藏  举报

/*
该脚本示例如何完整的修改一个数据库的名称.
数据库为原名称为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