none
低版本MSSQL为何不能顺利附加高版本MSSQL中低兼容级别为低版本MSSQL的数据库? RRS feed

  • 问题

  • 问题情况:

    我在SQL 2012中创建了一个兼容级别为2005的数据库,然后分离它,接着我用SQL2005去附加这个数据库,缺提示失败。。。。

    -----------------------------------------------

    数据库 'TestSQL05' 的版本为 706,无法打开。此服务器支持 611 版及更低版本。不支持降级路径。
    无法打开新数据库 'TestSQL05'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 948)

    -----------------------------------------------

    这个。。。#_#!!不科学啊亲~~

    求解答:

    Q1:我如何知道我的.mdf文件是那个版本?(611 = SQL Server 2005 or 706 = SQL Server 2012 ..)

    Q2:我如何知道我的数据库最高支持那个版本?(611 = SQL Server 2005 or 706 = SQL Server 2012 ..)

    Q2.2:我如何知道所有的数据库mdf文件版本(611 = SQL Server 2005, 655 = SQL Server 2008)相应的版本?

    Q3:对于[低版本SQL]不能顺利附加[高版本SQL的低兼容级别数据库],SQL Server设计这个兼容级别的初衷是什么?


    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。


    • 已编辑 dotNetDR_ 2013年1月16日 4:45 添加示范
    2013年1月16日 3:34

答案

全部回复

  • 1. can't tell without attaching to sql.

    2. same as sql version where the db exists.

    2.2 not clear what you are asking.

    3. in case you need upgrade sql instance to higher version but some app doesn't support it.


    • 已编辑 rmiao 2013年1月16日 3:42
    2013年1月16日 3:41
  • 一般都是向下兼容,不然怎么开发新功能?


    想不想时已是想,不如不想都不想。

    2013年1月16日 4:25
    版主
  • Q1:在mdf的第9页上,5-6两个字节就是版本号。

    Q2:你看你现在的mdf文件是什么版本就支持哪个版本。


    想不想时已是想,不如不想都不想。

    • 已标记为答案 dotNetDR_ 2013年1月16日 5:43
    2013年1月16日 4:52
    版主
  • 关于Q3我也知道了。应该使用SSMS中的生成脚本的操作。而不是直接分离然后再低版本数据库当中进行附加。


    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。

    2013年1月16日 4:56
  • dbcc checkprimaryfile('c:\test.mdf',2)

    这个命令可以看到mdf版本号~


    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。

    2013年1月16日 6:13
  • 对。DBCC CHECKPRIMARYFILE可以看不是正在运行的数据库的mdf文件。

    想不想时已是想,不如不想都不想。

    2013年1月16日 6:28
    版主
  • 使用DBCC CHECKPRIMARYFILE 查询Detach数据库信息: http://blog.csdn.net/smithliu328/article/details/8508651

    可以使用参数2

    • 已标记为答案 dotNetDR_ 2013年1月17日 4:41
    2013年1月17日 1:09
  • 就像初中同学不能认识和做高中同学的题一样

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2013年1月18日 4:02
  • 就像初中同学不能认识和做高中同学的题一样

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    您说的没错,但是我在创建数据库的时候指定了兼容级别为SQL 2005了~~逻辑表面是没有任何问题的~~

    高中同学去拿了一份初中级的试卷~~


    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。

    2013年1月18日 6:43
  • 兼容级别只影响部分数据库行为,Books Online里面有很详细的描述。就像大学生解答高中的极限问题,用到了积分,正确的回答了问题,但是高中生看不懂答案一样。

    想不想时已是想,不如不想都不想。

    • 已标记为答案 dotNetDR_ 2013年1月18日 7:06
    2013年1月18日 7:01
    版主
  • 我喜欢你的答案!

    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。

    2013年1月18日 7:06
  • 好了。到这里问题已经摸清楚了,感谢各位同志相助~

    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。

    2013年1月18日 7:07
  • 一直在关注LZ的博客,原来这里有这麽多博客园的园友

    给我写信: QQ我:点击这里给我发消息

    2013年1月19日 2:38