背景:拷贝bak文件还原成新库,发现数据库名称与逻辑文件名不一致,强迫症患者表示想修改为一致,那怎么办呢?
踩坑:用SSMS的视图进行附加的话,会报错:“至少需要一个文件",但脚本就可以解决
方法一:脚本修改
------------------修改逻辑名称后分离附加数据库----------
USE master
GO
--1.修改物理名称(视图重命名会快些)
EXEC sp_renamedb 'btms20200628','btmsssh0628'--前为oldname,后为newname
--2.修改逻辑名称
ALTER DATABASE btmsssh0628
MODIFY FILE(NAME='btms',NEWNAME='btmsssh0628')
ALTER DATABASE btmsssh0628
MODIFY FILE(NAME='btms_log',NEWNAME='btmsssh0628_log')
--3.分离
exec sp_detach_db @dbname=N'btmsssh0628'
--4.页面修改文件名称后--附加
exec sp_attach_db @dbname=N'btmsssh0628',
@filename1=N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\btmsssh0628.mdf',
@filename2=N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\btmsssh0628_log.ldf'
ps:分离后页面修改文件名称后再附加
方法二(这个方法有待调优):以下方法只是修改了数据库名以及文件名,逻辑名称还是不变的,修改参照方法一
背景:直接拷贝了数据库文件,想要附加为新库
-
数据库—右键—附件–添加数据库文件,然后做以下修改:
附加为:新数据库名称(BOOK2) -
修改文件名称为BOOK2(原为book)
当前文件路径修改为刚才修改的文件的对应路径
未完待续。。。。