是否大家有遇到過開始使用高版本的sql server當部署時卻被告知服務器環境只能使用當前低版本的sql server,我就遇到了,我開發時使用的是sql 2008 r2 到部署時被告之段時間內不能升級到r2,只要將就部署了 。 但高版本遷移到低版本普通方法是行不通的, 1.我直接在sql2008附加sql2008r2的數據庫,結果 “版本為 661,無法打開。此服務器支持 655 版及更低版本。不支持降級路徑。” 死路一條,呵呵。 2.在sql2008里建立新數據庫,然后通過復制數據方法,結果“ LiveUpdate returned a non-critical error. Available content updates may have failed to install.” 又是死路一條。 3.用數據庫鏡像,結果“由於數據庫可能有尚未備份的大容量日志記錄更改,所以無法啟用數據庫鏡像。必須在鏡像上還原主體數據庫的上一次日志備份。”意思是你不需要去還原,又是死路一條 4.用用導入導出的功能吧。 這個方法關鍵是如何確保保留原有表結構的主鍵、外鍵等 分兩個情況,對於數據庫數據量小的,可以很方便的解決 a.小數據的情況 1.先在低版本的服務器上建立同名的數據庫。 2.在高版本的服務器上右鍵點擊目標數據庫->任務->生成腳本 3.在選擇對象->選擇特定數據庫對象 4.選擇表、視圖、存儲過程,然后下一步 5.關鍵在這,這一步里,請選擇”高級“,選項里選擇[編寫DROP和Create腳本]項的”編寫DROP和Create腳本“,以及[編寫腳本和數據類型]項的“架構和數據" 6.保存腳本 7.在低版本的數據庫下執行腳本即可。 b.大數據情況 按理應該也可以通過類似包含架構和數據的方式來做,但是由於包含大數據的時候腳本文件太大,無法在分析器里執行,所以我們得繞一下。 1~4步和a情況相同 5.這步我們選擇”高級“,選項里選擇[編寫DROP和Create腳本]項的”編寫DROP和Create腳本“,以及[編寫腳本和數據類型]項的“架構" 6.保存腳本 7.在低版本的數據下執行腳本,注意(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外鍵名] FOREIGN KEY(字段) REFERENCES 表名(字段))這個先不要執行。 8.現在可以通過導入導出任務先將表的內容導入到低版本的數據庫內 9.再執行腳本內(ALTER TABLE 表名 WITH CHECK ADD CONSTRAINT [外鍵名] FOREIGN KEY(字段) REFERENCES 表名(字段))這樣的語句,此處將表的外鍵附加上。 10.。。大功告成