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'
因為路徑問題,所以默認情況下不會成功:也就是說如果使用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中
方法四:使用腳本: 但我個人不推薦使用此方法,因為在此過程中依然要使用數據的導入/導出來轉換數據,也就是說使用腳本不能讓記錄也一起導入到對方的數據庫中,仍然要借助其他方法!如果數據庫中對象較多,如觸發器,存儲過程等,可以考慮使用腳本和數據的導入\導出相結合.
這只是我個人的感覺,不知道對否,還望大家多批評指正!
本文出自 “杜飛” 博客