2010-09-29 111 views
3

在我目前的項目中,我必須將數據每天從MS Access傳輸到Sql Server 2008標準版。當然我可以使用SQL Migration tool將Access數據庫轉換爲Sql Server數據庫,但問題是我必須每天都一次又一次地更新我的sql服務器數據庫。如何將數據從Microsoft Access傳輸到SQL Server 2008?

有沒有什麼辦法可以編寫C#程序,將數據從MS ACCESS文件傳輸到SQL SERVER?

任何幫助將不勝感激。

+2

SQL Server Integration Services怎麼樣? – 2010-09-29 06:06:25

+0

爲了獲得準確的信息,SSMA for Access現在版本爲4.2(http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5abe098d-c7e1-46c6-994a-09a2856eef0b&displaylang=en )。 – 2010-09-30 03:15:32

+0

這是數據傳輸自動化的java解決方案。創建Jar並添加到調度程序中。檢查它在這裏https://dbisweb.wordpress.com/ – compyutech 2018-01-26 14:30:39

回答

4

正如Serkan在他的評論中所建議的那樣,我將使用SSIS(SQL Server Integration Services)來完成此任務,特別是當您已經在使用SQL Server並且SSIS完全支持這種任務時。

SSIS是非常靈活的(最喜歡的ETL包),你可以進行數據的轉換添加自定義邏輯(如果有的話)

此外,如果您創建SQL Server中的工作,那麼你可以安排這個任務,此作業將執行連接到MS Access數據庫的SSIS包並自動將其用作數據源。此外,您可以選擇直接從C#代碼調用SSIS包(如果由於某種原因,您有要求不使用計劃任務但需要爲用戶啓動任務提供某種界面)使用DTExec.exe或使用通過Microsoft.SQLServer.ManagedDTS.dll.

Refer this link暴露了類如何從C#代碼直接調用SSIS包

+0

謝謝你的建議,我會嘗試看看它是如何去。 Thankx再次 – 2010-09-29 07:25:03

1

我會建議一個ETL(例如參見Talend Open Studio)。您可以設計一個傳輸作業(必要時進行適當的轉換),然後使用您的OS任務計劃程序每天運行該作業。

注意:Talend Open Studio生成java或perl代碼。

1

爲什麼不永久地將數據遷移到SQL Server,並使用您的Access應用程序前端到SQL Server數據庫而不是Jet/ACE數據庫?

1

你也可以在C#中運行更新/刪除/追加查詢。 varous IN子句指向有問題的數據庫。如何在C#中做到這一點我不知道,但這些在Access中很容易實現。從Access 97幫助

FROM tableexpression IN 
    {path | ["path" "type"] | ["" [type; DATABASE = path]]} 

[SELECT | INSERT] INTO destination IN 
    {path | ["path" "type"] | ["" [type; DATABASE = path]]} 

要識別源表。

相關問題