数据库附加,至少需要一个文件?

解决方案

用语句附加

sp_attach_db '数据库名','数据库全路径.mdf','数据库日志全路径.ldf'--注意后缀文件名

坑点

突然发现一个数据库的名称是拼错的,要是被别人发现了岂不是...于是我们开始重命名操作

  1. 修改逻辑名称(执行语句)
  2. 分离数据库(界面操作)
  3. 重命名物理文件名称
  4. 附加数据库(界面操作)

第4步的时候出现"至少需要一个文件"错误。

老版的一体化MSSQL上诉操作是没问题的,出现问题的环境是MSSQL2016+SSMS。

mdf文件重命名后SSMS的界面附加操作应该存在BUG。

补充知识

1. 常规复制数据库方式

方式 特点
备份/还原 克隆出备份文件;日常备份(表分区可只备份当前表)
分离/附加 直接操作物理文件(改名字);需要停止服务
脚本 兼容性好;大小受限

2. 修改数据库的逻辑名称

  • 查询逻辑名称

    SELECT FILE_NAME(1), FILE_NAME(2)
    

    结果如下:

  • 修改逻辑名称,如把上述名称改为“AAATest2”。

    ALTER DATABASE AAATest
    MODIFY FILE ( NAME = AAATest, NEWNAME = AAATest2 )
    ALTER DATABASE AAATest2
    MODIFY FILE ( NAME = AAATest_log, NEWNAME = AAATest2_log )
    

3. 还原数据库同时修改名称

如把“AAATest”还原成“AAATest2”。

RESTORE DATABASE AAATest2    -- 新的数据库名称
FROM DISK = 'C:\DbBack\TestAAA'   --备份文件位置
with replace,
MOVE 'AAATest' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MYMSSQL\MSSQL\DATA\AAATest2.mdf',
MOVE 'AAATest_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MYMSSQL\MSSQL\DATA\AAATest2_log.ldf'

此脚本仅仅只修改了物理名称,如需修改逻辑名称2方法

posted @ 2020-03-24 15:30  扬扬S  阅读(924)  评论(0)    收藏  举报