首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么完整的修改一个数据库的名称

2013-01-01 
如何完整的修改一个数据库的名称/*该脚本示例如何完整的修改一个数据库的名称.数据为原名称为DB_BEIJING,

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


/*
该脚本示例如何完整的修改一个数据库的名称.
数据为原名称为DB_BEIJING,需要修改成DB_SHANGHAI
perfectaction 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 NameDB File PathFile TypeState
DB_BEIJINGX:\DATA\DB_BEIJING.mdfROWSONLINE
DB_BEIJING_logW:\Log\DB_BEIJING_log.ldfLOGONLINE
*/

--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 NameDB File PathFile TypeState
DB_SHANGHAIX:\DATA\DB_SHANGHAI.mdfROWSONLINE
DB_SHANGHAI_logW:\LOG\DB_SHANGHAI_log.ldfLOGONLINE
*/

--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















以下为csdn广告:
[解决办法]
学习,支持大叔
[解决办法]
大叔穷的开始当东西喽
[解决办法]
大叔V576YD
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
怎么完整的修改一个数据库的名称果断收藏
[解决办法]

[解决办法]
好法子,支持。
[解决办法]
额   好  怎么完整的修改一个数据库的名称

[解决办法]

押宝惹的祸~~嘎嘎
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
点击下载并深入了解IBM云计算
数据分析--实现价值新途径
简洁、灵活、掌控、降低管理成本
下载IBM Netezza数据仓库设备架构
【西安】开源云活动免费
[解决办法]
一个看似简单的操作,代码就那么的深奥...
[解决办法]
分离改物理名
附加改逻辑名
[解决办法]
thank you
[解决办法]
好主意  谢谢楼主
[解决办法]
不错,顶呀。
[解决办法]
那要顶  多支持吧
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
楼主的代码很强。但是我通常都用

backup 一下再restore 到一个新库名 的方法。
[解决办法]
楼主写得不错,值得收藏
[解决办法]
楼主的代码很强,值得收藏
------解决方案--------------------


收藏,不过没分...怎么完整的修改一个数据库的名称
[解决办法]
怎么完整的修改一个数据库的名称楼主写代码很厉害,建议收藏楼主~~
[解决办法]
向楼主学习,好东西,多谢!
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
什么东西我看不懂
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
怎么完整的修改一个数据库的名称甚好甚好。。。
[解决办法]
非常好!!!!!!!!!!!!!!!
[解决办法]
不太明白说的是嘛意思
[解决办法]
怎么完整的修改一个数据库的名称学习了
[解决办法]
不懂,,还是给予鼓励吧
[解决办法]
牛叉,路过....
这是SQLServer的吗 ?
怎么跟Sybase这么像
[解决办法]
大叔 内内还在不?
[解决办法]
怎么完整的修改一个数据库的名称
[解决办法]
怎么完整的修改一个数据库的名称怎么完整的修改一个数据库的名称
[解决办法]
怎么完整的修改一个数据库的名称

收藏, 收藏!!
[解决办法]
学习了,虽然不懂
[解决办法]
学习,学习。。。
[解决办法]
怎么完整的修改一个数据库的名称边学习边顶,
[解决办法]
好东东,顶一下
[解决办法]
阿萨德发撒的发生的法
[解决办法]
果断不懂哦,收藏呢还是不收呢怎么完整的修改一个数据库的名称
[解决办法]
学习,收藏怎么完整的修改一个数据库的名称
[解决办法]
thanks,studying怎么完整的修改一个数据库的名称
[解决办法]
顶一个。。。。。。。。。。。。

热点排行