正 文:
? ? 我們在調試網站數據的時候,往往需要在不同版本的sql之間轉換,比如sql2000到sql2005/sql2008之間的互相轉換。微軟的SQL是高版本向低版本兼容,因此,在SQL2005中可以直接附加sql2000的數據庫文件。但是,反過來就有一定難度了。
????由于SQL?Server?2005的數據格式變化很大,無法直接將SQL?2005的備份文件直接還原到SQL?Server?2000中。但是可以通過數據導入導出向導或者SSIS包進行數據傳輸。?
????大概的操作過程:為了避免類型信息的丟失,建議先在SQL?SERVER?2005?Management?Studio里面通過Generate?Script產生數據庫表,視圖,存儲過程等對象的腳本,然后在SQL?Server?2000中創建一個數據庫,并執行該腳本文件,創建對象的schema。在這項工作完成以后,再通過SQL?Server?2005提供的數據導入導出向導(右鍵點擊數據庫->任務->導入/導出)進行數據傳輸。?
????SQL?2005轉到SQL?2000的詳細的方法步驟:
1.?生成for?2000版本的數據庫腳本
?
打開SQL?SERVER?2005?Management?Studio
--?打開"對象資源管理器"(沒有的話按F8),?連接到你的實例?
--?右鍵要轉到2000的庫?
--?任務?
--?生成腳本?
--?在"腳本向導"的"選擇數據庫"中,?確定選擇的是要轉到2000的庫?
--?勾選"為所選數據庫中的所有對象編寫腳本"?
--?在接下來的"選擇腳本選項"中,?找到"為服務器版本編寫腳本"項,?選擇"SQL?Server?2000"?
--?其他選項根據需要設置?
--?最后把腳本保存到一個?tmp.sql?腳本文件?
2.?在SQL?2000中創建目標數據庫
?
連接到SQL?Server?2000,選擇導入的數據庫,打開查詢分析器,執行上面生成的腳本tmp.sql,以創建一個新的數據庫。這里僅僅是創建了數據庫表的結構而已,還沒有數據。?
飄易 提醒:這里打開tmp.sql腳本后,需要修改下默認的用戶,飄易截取下開頭的兩句:
EXEC?dbo.sp_grantdbaccess?@loginame?=?N'user103987877',?@name_in_db?=?N'user103987877'
GO
上面語句里的“user103987877”需要修改成sql?2000上存在的用戶名,不能使用保留名如“sa”。
3.?將數據從2005導到2000?
打開?SQL2005?Management?Studio
--?打開"對象資源管理器"(沒有的話按F8),?連接到你的實例?
--?右鍵要轉到2000的庫?
--?任務?
--?導出數據?
--?在"SQL?Server?導入和導出向導"的"選擇數據源"步驟中,?確定選擇的是要導出的數據庫?
--?在"選擇目標"步驟中,?連接到sql?2000,?并選擇步驟2新建的庫?
--?在"選擇源表和源視圖"中,?選擇所有的表?
--?最后完成?
???補充一點:在從sql?2005導出數據到sql2000的時候可能會提示:無法在只讀列“id”中插入數據!
???
解決辦法
:
因為id是標識列,所以導入時沒辦法插入數據庫。我們只需要在導入/導出第二步驟選擇“源表和源視圖”的時候,點擊后面的“編輯映射”按鈕,然后勾選“啟用標識列插入”再導入即可。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
