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中
方法四:使用腳本: 但我個人不推薦使用此方法,因為在此過程中依然要使用數據的導入/導出來轉換數據,也就是說使用腳本不能讓記錄也一起導入到對方的數據庫中,仍然要借助其他方法!如果數據庫中對象較多,如觸發器,存儲過程等,可以考慮使用腳本和數據的導入\導出相結合.
這只是我個人的感覺,不知道對否,還望大家多批評指正!
本文出自 “杜飛” 博客
1. 使用sql自帶的導出數據,在2005裡導入數據
2. 使用sql的備份數據庫,把數據和結構備份出來,在2005裡使用還原數據庫或強制還原數據庫.
一、系統需求
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] ......余下全文>>