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

网络整理 - 08-17

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

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

本人的实现环境介绍:

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

方法一: 使用分离与附加 该方法适合于将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之间的数据转换方法,sql数据转换

步骤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之间的数据转换方法,sql数据转换

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

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

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

因为路径问题,所以默认情况下不会成功:也就是说如果使用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之间的数据转换方法,sql数据转换

成功!

反之从 SQL2000导到SQL 2005也是一样的:例如将PUBS导到2005中

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

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

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

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

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

本文出自 “杜飞” 博客


怎将SQL server 2000的数据库转化为2005的数据库

1. 使用sql自带的导出数据,在2005里导入数据
2. 使用sql的备份数据库,把数据和结构备份出来,在2005里使用还原数据库或强制还原数据库.
 

sql2005数据库怎转成2000的?

一、系统需求
win2000以后的windows版本都可以安装sqlserver,如XP、2000、2003、win7等等,当然不能是家庭版。另外,只有server版操作系统才能安装sqlserver企业版,其它版本只能安装个人版、开发版。
二,同时装2000和2005
在一个系统同时装sql2000和2005,要注意:
1.先装2000的,安装好后打上sp4补丁,
2.然后安装sql2005,安装第二个SQLServer的时候注意用实例名。
3,安装后,在Configration Manager(2005)的“SQL Server 2005网络配置”中,将TCP/IP属性中“IP地址”选项卡中“TCPAll”的TCP端口改为1444。(这是因为sqlserver默认端口是1433,但1433已经被sql2000占用了,所以sql2005就必须另外指定一个端口)
4,安装后用Configration Manager的“SQL Native Client配置”(2005)或客户端实用工具(2000)新建一个别名。仍然以改2005为例:别名为DBServer,指向Server_IP\SQL2005,且端口号为1444。
5,在Management Studio中直接连接别名(DBServer)即可。另外,防火墙中如何加1444 TCP端口我就不多说了。

三,2005的数据库转成2000
1、生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开“对象资源管理器”(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在“脚本向导”的“选择数据库”中, 确定选择的是要转到2000的库
-- 勾选“为所选数据库中的所有对象编写脚本”
-- 在接下来的“选择脚本选项”中, 找到“为服务器版本编写脚本”项, 选择“SQL Server 2000”
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2、 在2000中创建目标数据库

在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3、 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在“SQL Server 导入和导出向导”的“选择数据源”步骤中, 确定选择的是要导出的数据库
-- 在“选择目标”步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在“选择源表和源视图”中, 选择所有的表
-- 最后完成

以下需要是需要注意的几点:
1、 在生成脚本之前,我们需要将数据库的兼容级别设置成"SQL Server 2000 (80)"。该设置可以在数据库属性->Option->Compatibility level中设置。
2. 由于SQL Server 2005包很了很多SQL Server 2000不同的new feature 比如"Service Broker",我们在2000的数据库实例上运行脚本时可能会收到一些语句(比如ALTER DATABASE [TEST] ......余下全文>>