db2資料庫遷移到mssql記錄之一

2022-04-08 11:12:03 字數 1129 閱讀 1065

乙個系統,原來是在db2上跑的,現在有需求,要求支援mssql,第一天折騰過程如下:

1、找到powerdesigner表設計檔案,生成mssql的指令碼,導進mssql資料庫。(直接通過db2匯出的指令碼,根本不能在mssql上面執行)

2、匯入指令碼時,有個別語句報錯,導致有個別表不能成功建立。處理方法是把兩個不同庫的表名都找出來,通過對比工具,找出沒建立的表,調整建表語句,再重新建立。這時候沒成功建立的表已不多,可手工逐個建立。

db2: select tabname from syscat.tables where tabname like ....

mssql: select name from sysobjects where name like ....

在操作過程,出現不少問題,如:

1、mssql的timestamp型別與db2的timestamp型別功能不一樣,mssql乙個表只能有乙個 timestamp 列,mssql的timestamp的取值形式為:0x0000000000053ca5,db2 timestamp 對應 mssql datetime, timestamp取值形式如:2011-07-19 09:43:50.290, 把匯出指令碼的timestamp換成datetime。

2、db2控制中心匯出的ddl,包含很多db2本身的東西在裡面,不適合其它資料庫使用。如:「restrict onupdate」,在mssql中會報錯「訊息 156,級別 15,狀態 1,第 20 行  關鍵字 'restrict' 附近有語法錯誤」。處理方法是手工把這些語句刪除。

3、clob 型別轉為 ntext,long vargraphic 型別轉為 ntext。

4、主鍵約束名稱報錯:訊息 2714,級別 16,狀態 5,第 1 行, 資料庫中已存在名為 'p_key_1' 的物件。訊息 1750,級別 16,狀態 0,第 1 行,無法建立約束。請參閱前面的錯誤訊息。

mssql中不允許同名的主鍵約束名稱,把p_key_1改為p_key_2,p_key_3之類

5、含有desc欄位的語句,在匯入時,報錯。mssql中desc是關鍵字,暫時處理方法是給desc加上雙引號,或是改名,如descpt之類,這個在後期執行系統時還需要測試。

通過以上操作和問題調整,基本把錶從db2遷移到mssql了,接下來的還有檢視、儲存過程、函式等的調整。

db2資料庫遷移到mssql記錄之一

乙個系統,原來是在db2上跑的,現在有需求,要求支援mssql,第一天折騰過程如下 1 找到powerdesigner表設計檔案,生成mssql的指令碼,導進mssql資料庫。直接通過db2匯出的指令碼,根本不能在mssql上面執行 2 匯入指令碼時,有個別語句報錯,導致有個別表不能成功建立。處理方...

MSSQL資料庫遷移到Oracle

最近要把乙個mssql資料庫遷移到oracle上面,打算借助powerdesigner這個軟體來實現 今天簡單研究一下這個軟體的運用 把一步簡單的操作步驟記錄下來 1 首先我們開啟powerdesigner,並新建乙個physical data model 2 工具欄裡的 資料庫 configure...

Db2資料遷移

db2資料遷移的方法大致有以下幾種 通過db2資料庫的備份和復原進行資料遷移 注意點 進行復原的時候要通過手動選擇備份,復原檔案時間設定要和備份的檔案上的時間戳一致 不能進行跨平台的遷移,如 從linux平台資料庫備份的檔案,不能復原到windows平台資料庫中 通過export to和import...