背景介紹: 公司一套系統使用的是SQL SERVER 2008數據庫,突然一天收到郵件,需要將這套系統部署到各個不同地方(海外)的工廠,需要在各個工廠部署該數據庫,等我將準備工作做好,整理文檔的時候,坑爹的事情發生了,居然發現有兩三個工廠使用的還是SQL SERVER 2005數據庫,要命的是這幾個工廠沒有SQL SERVER 2008的數據庫服務器。而其中兩個正準備做服務器的遷移升級,但是IBM的存儲還沒有到,沒辦法,這么”反人類,阻擋歷史進程“的事情就發生了,我以為這種小概率的事情永遠都不會發生在我身上。好在這個數據庫不大,才200M。于是才有下面文章的總結。
由于SQL Server 2008數據庫轉換到SQL Server 2005上,是不能通過備份還原、分離附加等操作來實現的,只能通過數據的導入導出實現。方法大致有幾種:
1:通過Generate Scripts(包括數據) ,這個方法呢,如果對于很小的數據庫,倒是一個非常方便的方法。注意前提是數據庫很小,如果數據庫很大,那你千萬別選這個方法,SQL導入數據的性能會折磨死你。
2:通過Generate Scripts(生成表、視圖等),然后使用SQL Server Import and Export Tool導入數據
3: Red Gate SQL Compare 工具
關于性能對比呢,博客園這位老兄的這篇文章"不同版本的SQL Server之間數據導出導入的方法及性能比較 " 已經做了詳細的測試,下面只是介紹、總結轉換SQL Server 2008數據庫到SQL Server 2005的操作步驟。
Generate Scripts
Step 1: 單擊某個需要轉換的數據庫,然后選擇任務(Tasks)——生成腳本(Generate Scripts)
Step 2: 彈出生成腳本指導界面
Step 3:選擇需要導出的數據庫對象,有導出整個數據庫對象和選擇指定數據庫對象兩個選項
Step 4: 設置生成腳本選項,例如指定腳本位置,腳本文件的編碼等等選擇,最重要的是高級選項”Advanced“
如下所示,最好在”Script for Server Version“ 里面選擇”SQL Server 2005“等選項
測試服務器這個版本里面沒有'Script Data”(生成數據的腳本)選項,如下所示,如果你要通過腳本插入數據,那么就必須選擇這個選項。
Step 5: Summray your selections, 點擊Next繼續
Step 6: 執行過程。完成后即生成了相應腳本文件。
將生成的腳本在另外一臺測試服務器執行,創建相應的數據庫以及數據庫對象。然后點擊”SQL Server Import and Export“工具進行數據導入,操作步驟如下所示:
SQL Server Import and Export
Step 1: 歡迎界面,點擊Next跳過。
Step 2: 選擇數據源(Data Source),我們需要選擇“SQL Server Native Client 10”, 輸入身份認證信息,我選擇Windows 身份認證。選擇
需要導出數據的數據庫,例如,我選擇一個測試數據庫TSL
Step 3:配置需要導入的Destination,選擇對應的服務器和數據庫
Step 4:兩個選擇,選項1是用于整個表或視圖導入導出,選項2用于書寫查詢SQL或導入導出
Step 5: 勾選你需要導數的腳本,單擊Source旁邊的選項,即可選擇全部對象。有時候需要編輯“Edit Mappings"選項,勾選”Enable identity Insert“,否則會導致后面導入導出報錯
新聞熱點
疑難解答