2005不论是性能还是安全性都是SQL SERVER2000有所增强,现有不少企业在使用2005,或是有的用户是2000与2005同时使用,那么这中间就涉及到双数据的转换问题:
今天我们就来看一下相关的实现方法:
本人的实现环境介绍:
方法一: 使用分离与附加 该方法适合于将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机器上:
步骤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
复制到对方机器上:
步骤
3
:
在
SQL 2005
的机器上执行:
restore database db1 from disk='c:\db1.bak'
如果
报错SQL Server 2005 数据库还原中与现有的数据库不同,则
在恢复的“选项”中选择“覆盖现有数据库”
因为路径问题,所以默认情况下不会成功:也就是说如果使用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
:
成功!
反之从
SQL2000
导到
SQL 2005
也是一样的:例如将
PUBS
导到
2005
中
方法四:使用脚本:
但我个人不推荐使用此方法,因为在此过程中依然要使用数据的导入
/
导出来转换数据,也就是说使用脚本不能让记录也一起导入到对方的数据库中,仍然要借助其他方法!如果数据库中对象较多,如触发器,存储过程等,可以考虑使用脚本和数据的导入\导出相结合.