将数据库从sql2008数据库导出到2000/2005

时间:2022-10-21 09:32:26

办公室的机器装的是 Sql 2008, 但家的 老早装的是 Sql Express 2005,在办公室做了一个小工具,自己用。但是在恢复数据方面,出了一点问题。

 

如果直接从sql 2008上备份一个数据库到 **.bak文件,再拿到 sql 2005上恢复,不成功;如果 从 Sql 2008这边 拿 **.mdf,**.ldf文件到 sql 2005 附加,也不成功。

后来,我找到一种解决方案: 从 sql 2008 上生成数据库脚本(包括所有的数据库对象和表的内容),再拿到 sql 2005上执行。

以下是解决方案:

 

既导数据库的对象,也导数据:

选择数据库

任务-->右键 生成脚本-->编写整个数据库及所有数据库对象的脚本 --> 高级 -->表/视图选项中的所有属性 设为 true-->常规选项中 编写创建数据库的脚本设为 true, 为服务器版本编写脚本设为 Sql 2005;要编写脚本的数据的类型 选择 构架和数据

 

在执行的过程中,如果含有存储过程,也许会有错误。

主要是一点语法问题,不用担心,稍微改一下就OK了。

比如 Sql 2008的存储过程里 declare @sName varchar(20)='zhangShang'

在Sql 2005里,执行不成功,提示如下的错误:

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

消息 139,级别 15,状态 1,第 0 行
Cannot assign a default value to a local variable.

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

 

怎么解决:

改成

declare @sName varchar(20)
set @sName='zhangShang'

就OK了。