簡體   English   中英

C#將MS-Access數據庫導入SQL Server?

[英]C# import MS-Access database into SQL Server?

我需要每天一次將來自MS Access數據庫的數據導入到SQl Server 2000數據庫中。 由於我需要每天自動完成此操作,是否有ac#例程可以執行此操作?

MS Access數據庫中的表將在SQL Server中被命名為相同的表,它需要刪除SQL Server數據庫中的表,然后從MS Access導入新的數據/表。

一種選擇是在sql服務器數據庫中創建一個存儲過程來執行此操作,請參見此處: 從訪問數據庫文件中選擇並插入到sql數據庫中

正如marc_s所提到的那樣,您可能可以使用SSIS-但要想正確使用它可能需要大量的學習。

另一個選擇是從C#中控制它-從訪問數據庫中提取數據,然后將其插入到sql服務器中-這不太可能是您想要的。

如果保證您的訪問數據庫和sql服務器實例位於同一台服務器上,那么我將傾向於嘗試選項1。如果沒有,那么它將帶來許多其他問題;)

編輯:您提到可以通過單擊按鈕來完成-在這種情況下,實際上您應該至少給SSIS解決方案一次,看看它是否看起來像您想要的那樣,它正是針對這種情況而設計的。

access.mdb鏈接的服務器在sql server的任何版本中,都需要Microsoft.ACE.OLEDB.12.0或Microsoft.Jet.OLEDB.4.0。 這些驅動程序存在兩種類型的32位和64位。 64位操作系統更喜歡安裝64位噴射驅動程序,否則可能無法正常連接。

三個步驟:

1-在SQLServer中創建LinkedServer,如下所示:
EXEC master.dbo.sp_addlinkedserver @server = 'Customers', @srvproduct = 'CustomersDB', @provider = 'Microsoft.Jet.OLEDB.4.0', @datasrc = 'C:\\inetpub\\wwwroot\\ftp\\AccessDB.MDB', @location = '', @provstr = '', @catalog = ''
EXEC master.dbo.sp_serveroption @server = 'Customers', @optname = 'collation compatible', @optvalue = 'false'

2-在執行導入工作的目標sqlserver中創建一個存儲過程
CREATE PROCEDURE ImportMDBData
as
TRUNCATE TABLE sqlServerCustTable
INSERT INTO sqlServerCustTable (list your columns name here) (SELECT * FROM Customers.dbo.mdbCustTable)

3-現在您只需要從代碼中調用存儲過程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM