问题

学校数据库上机用的sql server 2008, 我自己电脑上安装的是sql server 2017, 然后老师给的 .mdf 文件在机房是可以附加的,在我的电脑上附加不成功, 提示有错误:

SQLServer 数据库、附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

上网搜索了好久,好多博客讲的都是修改文件权限,然而在我这里依旧行不通,问题依然存在,另外吐槽一下: csdn 同样的文章会出现好多遍,貌似csdn 上的coder 都喜欢copy, paste, copy, paste…(由于涉及到上古时期的软件,去csdn 碰碰运气, 万一碰到解决方案呢, 然而并没有……)

吐槽ending….

解决过程

说我的解决方案吧:

老师给的test.mdf 文件的创建日期是2011年(祖传数据库🐶),考虑到学校提供的工具集落后业界10+年,看sql server 的历史wiki,2011年时最新版本应该是2008,所以创建test.mdf 的sql erver 版本应该更低(maybe 2005 or 2000,谁具体知道呢?)​​

将MSSM Studio上的错误提示信息(SQLServer数据库、附加数据库时出错。有关详细信息,请单击“消息”列中的超链接)翻译成英语,然后Google了一番,这个答案映入眼帘

You will be not able to migrate from SQL 2000 to 2012 directly. Migration from 2000 to 2012 requires an intermediate step.

你不能从2008直接迁移到2012, 需要一个中间过程。接着看:

You will have to make the migration in two steps:

- Step 1: Make a first migration from SQL 2000 to SQL 2008 for instance. You need to be SQL 2000 SP4, then follow this step : Migration SQL Server 2000 to SQL Server 2008 - Step 2: Make a second migration from SQL Server 2008 to 2012.

sql server 不能直接迁移,那么database可以直接迁移吗?Go on

Google attach sql server 2000 database to sql server 2012,第一个答案

You cannot directly attach a sql 2000 database on sql 2014. You need to first attach this on a sql 2005 or sql 2008 instance and then take the backup of that database and restore on 2014.

破案了……

一句话总结:将test.mdf附加(attach)到sql server 2005 or 2008,然后分离(detach),然后在附加到2017或你的版本

在以上基础上如果还有错误,参考上述某个链接,修改文件权限。

还没完呢?

attach/detach vs backup/restore

查资料发现有人用的是前者(attach/detach),有人用后者(backup/restore),搜了一下两者的优劣,我果然没看懂。

link_1

link_2

link_3

讨论的是他们两者的优劣,有提到速度啊,安全性什么的,可我统统感受不到(初学者落泪~)!上面两个链接,过段时间在学习吧。

至于你要问我为什么安装新版本而不是旧版本?