use master
go
--1) 创建数据库(原始数据库abc)
create database abc on(name='abc', filename='dabc_data.mdf')
go
--2) 重命名数据库(新数据库名abc2)
exec sp_renamedb abc, abc2
go
--3) 修改数据库的逻辑名称
alter database abc2 modify file(name='abc_data', newname='abc2_data')
alter database abc2 modify file(name='abc_log', newname='abc2_log')
--go
--4) 分离数据库
exec sp_detach_db abc2
go
--5) 重命名数据库物理文件
exec xp_cmdshell 'rename dabc_data.mdf abc2_data.mdf'
exec xp_cmdshell 'rename dabc_log.ldf abc2_log.ldf'
go
--6) 附加数据库
exec sp_attach_db 'abc2', 'dabc2_data.mdf', 'dabc2_log.ldf'
go
上述代码中,需要注意如下几点:
1.完整的6个步骤中,可以不用脚本的步骤为:第1)、4)步可以在企业管理器中实现,第5)步可以在Windows资源管理器中修改。
2.如果省略第3)步,整个脚本仍然可以运行,但在企业管理器中查看数据库的“属性”时(右键点击该库,弹出菜单中),其“数据文件”、“事物日志”名仍然为库创建时的原名称。
3.如果第6)部不使用存储过程,而是在企业管理器中直接“附加”(数据库的“任务”菜单中的“附加”功能),因“原文件名”与当前名不一致,不允许附加操作(“确定”按钮为灰色的)。