如何转换sql server 2005数据库到sql server 2008

如何转换sql server 2005数据库到sql server 2008,第1张

由于SQL Server 2008数据库转换到SQL Server 2005上,是不能通过备份还原、分离附加等 *** 作来实现的,只能通过数据的导入导出实现。方法大致有几种:1:通过Generate Scripts(包括数据) ,这个方法呢,如果对于很小的数据库,倒是一个非常方便的方法。注意前提是数据库很小,如果数据库很大,那你千万别选这个方法,SQL导入数据的性能会折磨死你。2:通过Generate Scripts(生成表、视图等),然后使用SQL Server Import and Export Tool导入数据3: Red Gate SQL Compare 工具 关于性能对比呢,博客园这位老兄的这篇文章"不同版本的SQL Server之间数据导出导入的方法及性能比较 " 已经做了详细的测试,下面只是介绍、总结转换SQL Server 2008数据库到SQL Server 2005的 *** 作步骤。Generate ScriptsStep 1: 单击某个需要转换的数据库,然后选择任务(Tasks)——生成脚本(Generate Scripts)Step 2: d出生成脚本指导界面Step 3:选择需要导出的数据库对象,有导出整个数据库对象和选择指定数据库对象两个选项Step 4: 设置生成脚本选项,例如指定脚本位置,脚本文件的编码等等选择,最重要的是高级选项”Advanced“如下所示,最好在”Script for Server Version“ 里面选择”SQL Server 2005“等选项测试服务器这个版本里面没有'Script Data”(生成数据的脚本)选项,如下所示,如果你要通过脚本插入数据,那么就必须选择这个选项。Step 5: Summray your selections, 点击Next继续Step 6: 执行过程。完成后即生成了相应脚本文件。将生成的脚本在另外一台测试服务器执行,创建相应的数据库以及数据库对象。然后点击”SQL Server Import and Export“工具进行数据导入, *** 作步骤如下所示:SQL Server Import and ExportStep 1: 欢迎界面,点击Next跳过。Step 2: 选择数据源(Data Source),我们需要选择“SQL Server Native Client 10”, 输入身份认证信息,我选择Windows 身份认证。选择需要导出数据的数据库,例如,我选择一个测试数据库TSLStep 3:配置需要导入的Destination,选择对应的服务器和数据库Step 4:两个选择,选项1是用于整个表或视图导入导出,选项2用于书写查询SQL或导入导出Step 5: 勾选你需要导数的脚本,单击Source旁边的选项,即可选择全部对象。有时候需要编辑“Edit Mappings"选项,勾选”Enable identity Insert“,否则会导致后面导入导出报错Step 6: 勾选立即执行,点击Next执行下一步Step 7 : 执行过程,需要检查是否执行成功,查看相关出错信息。执行完成后,然后在测试服务器将该数据库备份压缩后,通过FTP上传到各个工厂,进行还原。关于 Red Gate SQL Compare的 *** 作,也非常方便简单,由于测试过程中没有截图,就此略过。由于测试用的数据库比较小,不知道比较大的数据库,例如几百G的数据, *** 作起来是否会遇到性能等杂七杂八的问题。不过相信很多人是不会遇到这么奇葩的案例的。例如使用导入导出工具,其实就会遇到一些小问题(以前遇到的): 1:在验证时出现错误,错误信息如下所示:- Validating (Error) Messages * Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it. (SQL Server Import and Export Wizard)* Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it. (SQL Server Import and Export Wizard)解决:检查你源数据库和目标数据库的排序规则是否不一致,如果不一致,就会出现大量上面错误。 2:在验证时出现下面错误信息- Validating (Error)Messages * Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column "xxxxx". (SQL Server Import and Export Wizard) * Error 0xc0202045: Data Flow Task 1: Column metadata validation failed. (SQL Server Import and Export Wizard)解决:出现这个错误,是因为这一列是自动增长,需要在”Edite Mappings" 选项里面勾选“Enable Identity Insert”选项,如果数据库里面有大量这类列,是个头疼的问题。

1.

打开SQL

server

enterprise

mananger

"企业管理器"

在你要导出的SQL数据库上鼠标右键菜单:所有任务-》导出数据

2.

回出现一个导出向导窗口。

选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。

3.

进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为“Microsoft

Access。点

“文件名(F)”

后面的按钮选择目标.MDB文件。

4.

选择“从数据库复制表和视图”。

5.

我们注意这里选表的时候右边有一个“转换”列。SQL导出只转换数据类型并不考虑其他脚本所以我们遇到的自动编号问题也就出在这里。有自动编号的一定要点选“转换”。

6.

我们回看到一个“列映射和转换”对话框。有注意到自增的employeeid

int

自增这里变成了Access里的long这肯定不对,long并不是自动编号,只好修改建表脚本,图片上那个红圈里的按钮“编辑SQL”。

开一个小窗create

talbe

红圈中的脚本就是employeeid

Access建表脚本,在

"NOT

NULL"

前面加上

"IDENTITY

(1,

1)"。

7.

立即执行。

SQL Server数据库是不支持降级还原的,如果你要将高版本的数据库转换为低版本的数据库,可以采取以下方法:

在高版本的数据库(比如SQL Server 2012)中生成数据库的脚本文件,在生成脚本文件的高级选项中选择目标服务器的版本(比如SQL Server 2008),数据类型为"架构和数据".

脚本生成后在目标服务器中运行脚本文件即可.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9926553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存