欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server 2005与sql 2000之间的数据转换方法

程序员文章站 2022-05-28 12:15:06
2005不论是性能还是安全性都是sql server2000有所增强,现有不少企业在使用2005,或是有的用户是2000与2005同时使用,那么这中间就涉及到双数据的转换问...

2005不论是性能还是安全性都是sql server2000有所增强,现有不少企业在使用2005,或是有的用户是2000与2005同时使用,那么这中间就涉及到双数据的转换问题:

今天我们就来看一下相关的实现方法:

本人的实现环境介绍:SQL Server 2005与sql 2000之间的数据转换方法

方法一: 使用分离与附加 该方法适合于将sql server 2000中的数据转换到sql server2005 ,但反之不行。

例如:现在将sql server2000中的dufei数据库通过分离与附加的方法导入到sql server 2005中:

步骤1: 在 2000机器上运行:

use master;go
exec sp_detach_db @dbname = n'dufei';go

步骤2:将分离再来的mdf及ldf文件复制到 2005机器上:

SQL Server 2005与sql 2000之间的数据转换方法

步骤3:在2005机器上执行以下命令:将复制的文件附加到数据库中即可:

use master;go
exec sp_attach_db @dbname = n'dufei', 
@filename1 = n'c:\dufei_data.mdf', 
@filename2 = n'c:\dufei_log.ldf'; go

此时:导入成功!

方法二:利用备份与还原:

实例:现将2000中的db1数据库备份后,利用还原的方法导入到2005中:

步骤1:在sql2000中执行:

backup database db1 to disk='c:\db1.bak'

步骤2:将备份文件复制到 sql 2005的机器上:将生成的db1.bak复制到对方机器上:

SQL Server 2005与sql 2000之间的数据转换方法

步骤3: 在sql 2005的机器上执行:

restore database db1 from disk='c:\db1.bak'

SQL Server 2005与sql 2000之间的数据转换方法

因为路径问题,所以默认情况下不会成功:也就是说如果使用restore的默认语法,是不行的:

因此,我们要对路径进行修改:


restore database db1 from disk = 'c:\db1.bak' with file = 1, move n'db1_data' to n'c:\program files\microsoft sql server\mssql.1\mssql\db1.mdf', move n'db1_log' to n'c:\program files\microsoft sql server\mssql.1\mssql\db1_1.ldf'

则还原成功!

但如果是将2005中的数据使用此方法导到2000则会报错:

为备份或还原操作指定的设备太多;只允许指定 64 个设备。

服务器: 消息 3013,级别 16,状态 1,行 1

restore database 操作异常终止。

所以两种方法都不能实现将sql server 2005的数据导到 sql server 2000中,除非使用下面的两种方法:

方法三:导入导出:

实例:将 2005中的数据库dufei导出到sql 2000中

步骤1:

SQL Server 2005与sql 2000之间的数据转换方法

成功!

反之从 sql2000导到sql 2005也是一样的:例如将pubs导到2005中

SQL Server 2005与sql 2000之间的数据转换方法

SQL Server 2005与sql 2000之间的数据转换方法

SQL Server 2005与sql 2000之间的数据转换方法

方法四:使用脚本: 但我个人不推荐使用此方法,因为在此过程中依然要使用数据的导入/导出来转换数据,也就是说使用脚本不能让记录也一起导入到对方的数据库中,仍然要借助其他方法!如果数据库中对象较多,如触发器,存储过程等,可以考虑使用脚本和数据的导入\导出相结合.

这只是我个人的感觉,不知道对否,还望大家多批评指正!

本文出自 “杜飞” 博客