SQL2005数据库备份如何还原到SQL2000数据库中

时间:2022-03-21 19:56:17

 

以前帮客户做了一个网站.是VS2005+2000的数据库后来不知道为什么..将数据库转为2005的了..过了一段时间又要转成2000的..郁闷至极..主要是从来没弄过..结果就到网上去找..找了整整一个上午.终于将这个问题解决..可能有点麻烦..有高手还望指正!

一,首先将05的数据库备份还原到本机的05中

  通过在空的数据库上右键-任务-还原 来完成

二,在05数据库上右击-任务-生成脚本

      1.在生成脚本之前,我们需要将数据库的兼容级别设置成"SQL Server 2000 (80)"。该设置可以在数据库属性->Option->Compatibility level中设置

  2,选择数据库

  3,在选择脚本选项中,找到:为服务器版本编写脚本,后面选择SQL SERVER 2000...这一步最重要,否则会出错

  4,接下来就一步一步执行就OK了

三,将生成的SQL脚本复制到SQL2000的数据库中 的SQL查询分析器中执行..

  这样就将05数据库备份的数据库结构弄过来了..这里只是完成了一半.接下来更重要!

四,在SQL2000的数据库上右建-所有任务-导入数据

  1,选择数据源. 服务器就选择SQL2005的数据库服务器,数据库选择你要导入的05数据库中的数据库名

  2,选择目的.这里就是SQL2000数据库中要导入的数据库了

  3,接下来就是一步一步执行就OK了

到这里就算大功告成了..你成功了没?!

 

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

SQLServer2005中生成SQLServer2000的数据库脚本的时候出现这个错误:“ 目标服务器版本不支持该对象或不支持该对象的一个属性?”

---将触发器的状态置为False即可正常导出脚本(高版本的某些东西在低版本不支持)。

解决!

 

图文介绍:

 

 

在SQL2005附加过后的数据库,不能再被2000附加了

如果想还原到SQL2000,目前我用的方法是在sql 2005中生成数据库的脚本,

SQL2005数据库备份如何还原到SQL2000数据库中

SQL2005数据库备份如何还原到SQL2000数据库中

如果是所有的数据请勾选:Script all objects in the selected database

SQL2005数据库备份如何还原到SQL2000数据库中

注意生成的时候, 要选择生成sql 2000这个版本的脚本然后在2000中用这个脚本建立目标库,

再用数据导入/导出工具或查询分析器,把数据从2005导到2000即可.

关系图需要自己重新建立!

 

 

《2005的数据库不能还原或附加到2000上,解决办法就是重新生成数据库及内部所有对象的脚本在2000中重建,然后将数据导入到2000中。》

 

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

SQL2005转SQL2000的问题脚本:数据库进行降级处理。

在生成脚本之前,我们需要将数据库的兼容级别设置成"SQL Server 2000 (80)"。该设置可以在数据库属性->Option->Compatibility level中设置

 

 方便的是SQL Server Management Studio自带的生成脚本功能。
SQL Server Management Studio>>>任务>>>生成脚本
如果选择生成sql2000版本的脚本,那么生成的脚本存在瑕疵,无法直接在sql2000中运行。
可能会出现以下错误>>>
错误一:WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
错误二:'sys.objects'
错误三:列名 'object_id' 无效
错误四:sys.views
尝试打上 SQL2005的SP3 补丁后,上面的问题解决了,但还是存在问题。
比如:[nvarchar](max) ,sql2000貌似不支持max参数的
---可采用以下~~
1. 去掉 “WITH (IGNORE_DUP_KEY = OFF) ”

2. 将所有的 “sys.objects”改为“sysobjects”
3. 将所有的 “object_id” 改为 “id”
4. (需要时)将所有的 “SCHAMA” 改为 “user”
5. 如果有的系统函数名或系统存储过程名称前有“sys.”不能被SQL2000识别,就把它去掉。如添加注释“sys.sp_addextendedproperty”。

 

警告: 已创建表 'xxxx',但其最大行大小(10438)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。----其中xxxx是你的建的表名,10438是你建表语句中可变长度列(如 nvarchar 或 varbinary)的总长度,8060是SQL Server对行长度的最大限制。

、解决

    知道问题的原因了,解决办法相对就简单了!

    1、修改你建表语句中相应的列的数据类型或长度(如将nvarchar格式改成text),让可变长度列的加和小于8060。这样可以彻底避免出现上述错误发生,当然上述的错误并不是必然出现。