我們正在設計從MAS200等外部數據源導入我們的生產SQL Server 2005/2008數據庫的數據導入。源將成爲交易數據庫並且安全/隔離。我們需要保持我們的數據庫與源同步,因此需要定期進行數據同步。SQL Server數據導入
我們可以自由要求任何類型的源數據 - 比如以CSV,txt文件的形式,或者甚至將源數據放在另一個具有類似結構的SQL數據庫中。我們需要選擇導入數據的最佳方式 - 這將是定期的,可能會每小時或每天完成。
根據我的經驗,我相信在SQL數據庫中使用源數據可能是最好的入門方式。以下是對我們到目前爲止得出一個粗略的設計 -
- 定期源數據庫將在外部(不是我們的部分)填充
- 預處理:波蘭語源表數據(即修剪,查找) - 一般數據格式化&轉換
- 提取:創建一個CURSOR來遍歷記錄。我們計劃更新現有數據並插入新的數據,因此我們需要至少兩個CURSOR循環。
- 填充:內遊標循環記錄將更新/插入
- 後處理:同樣一些最後的潤色&查找映射(即更換ID代碼)
- 檢查:最後,運行一致性檢查表,以確保進口
數據總之,我們要打破在存儲過程中的步驟,然後創建一個SQL工作將遵循THOS的完整性逐一步驟。我知道有很多方法可以做到這一點,SSIS,數據導入嚮導等。但是我們需要保持它非常簡單,便於攜帶,對未來的更改不太依賴和靈活。
注:該數據將是巨大的 - 上一次我們有一個類似的設置花了幾分鐘的時間幾乎一樣20-25分鐘即可完成整個數據導入過程,所以我們定的每小時的數據導入。
謝謝。
更新#1: 據我所知,用MERGE命令似乎最好。但是如果我必須爲SQL Server 2005創建它?我相信它可以在2008年之後起作用。 我找到了一個鏈接 -
http://sqlserver-tips.blogspot.com/2006/09/mimicking-merge-statement-in-sql.html
任何其他的想法在2005年?
如果您的數據是**巨大**,那麼請儘量避免**遊標! –