2012-05-18 47 views
2

我知道你可以使用升遷嚮導在獲得正常轉換這一點,但因爲這是我們從第三方獲得一個每天都在MDB文件的服務器端程序,我必須能夠以無觸摸架構攝取這些圖像。自動化MDB到SQL Server

目前,我對設置進行手工編寫這一切(啊),我通過一個數據源讀取訪問數據庫,並衝它到SQL服務器通過批量插入或實體框架。我真的希望有更好的方法來做到這一點。由於有很多表格和TON數據,我願意接受許多創造性的方法。

回答

2

有許多的浮現在腦海中的方法,這也確實都涉及到自定義編程,但應該是比較簡單,容易實現。

  1. 從另一個Access DB中,以編程方式打開源數據庫(即使用VBA)。在源數據庫中創建鏈接表到SQL後端。將數據從源數據庫複製到鏈接表(使用insert dest select * from source)。
  2. 使用OPENDATASETOPENROWSOURCE與SQL Server直接連接到Access數據庫和複製數據。您可以再次使用insert dest select * from source複製數據,或者使用select * into dest from source從源數據創建新表。這涉及調整sql server上的一些系統設置,因爲默認情況下它沒有啓用,但幾個谷歌搜索應該讓你開始。
  3. 從.NET程序,使用SqlBulkCopy(這是用於自動化bcp .NET類)以從Access數據庫上傳數據。只需使用ADO.Net直接處理數據,因爲沒有必要爲了將數據從一個數據源遷移到另一個數據源而構建整個EF層。

我已經在各種項目中使用的所有三種方法中的變體的上方,但是用於移動大量的表,我已發現選項#2是相對高效的。如果您的表名每天都是動態的,它將涉及一些動態的SQL代碼,但如果它們是靜態的,則只需編寫一次邏輯並使用參數來讀取文件名即可。

+0

優秀的想法。那些已經比我有趣的那些更好了。謝謝! – Allen