Sql2000,2005,2008的转换常识

来源:互联网 发布:大富豪3.29源码 编辑:程序博客网 时间:2024/06/05 02:42
在这里,我所指的版本是指的2000,2005,2008这样的版本区别,而不是企业版,开发版这样的版本区别.从官方的说法来看,SQL Server是允许数据库从低版本向高版本恢复,但不支持高版本向低版本的恢复,如果我们用高版本的数据库在低版本的数据库引擎下恢复,会出现什么错误描述呢?
    数据库恢复一般是指两个层面的意思:一种方法是利用备份文件进行还原;一种方法是利用数据文件进行附加还原.
    我们先来看备份还原的方式: 
            如果是用2005的数据库在2000下还原,会出现错误:
CODE:
          Msg 3205, Level 16, State 2, Line 1
          Too many backup devices specified for backup or restore; only 64 are allowed.
          Msg 3013, Level 16, State 1, Line 1
          RESTORE DATABASE is terminating abnormally.
如果是用2008的数据库在2005下还原,会出现错误:
CODE:
            Msg 3241, Level 16, State 7, Line 1
          The media family on device 'c:\xxx.bak' is incorrectly formed. 
          SQL Server cannot process this media family.
          Msg 3013, Level 16, State 1, Line 1
          RESTORE DATABASE is terminating abnormally.
接着我们来看附加还原的方式:
            如果是用2005的数据库在2000下附加还原,会出现错误:
CODE:
            Msg 1813, Level 16, State 2, Line 1
            Could not open new database 'xxx'. CREATE DATABASE is aborted.
            Msg 602, Level 21, State 50, Line 1
          Could not find row in sysindexes for database ID 7, object ID 1, index ID 1. 
            Run DBCC CHECKTABLE on sysindexes.
如果是用2008的数据库在2005下附加还原,会出现错误:
CODE:
          Msg 1813, Level 16, State 2, Line 1
          Could not open new database 'Test'. CREATE DATABASE is aborted.
          Msg 948, Level 20, State 1, Line 1
          The database 'Test' cannot be opened because it is version 655. 
          This server supports version 612 and earlier. A downgrade path is not supported.
实践也证明了官方的说法,其实一般很少有高版本的数据库导入到低版本的情况,如果确实需要这样做,建议采取以下步骤:
          1:通过管理器的脚本生成向导,把数据库,表,存储过程等对象的脚本生成,然后在低版本的SQL Server下执行建立这些对象.
          2:通过DTS/SSIS,将表中的数据导过去.
原创粉丝点击