如何将数据从Microsoft Access传输到SQL Server 2008?

时间:2010-09-29 05:57:35

标签: c# sql-server-2008 ms-access

在我目前的项目中,我每天都要将数据从MS Access传输到Sql Server 2008标准版。当然我可以使用SQL Migration tool将Access数据库转换为Sql Server数据库,但问题是我必须每天一次又一次地这样做以继续更新我的sql server数据库。

有什么方法可以编写将数据从MS ACCESS文件传输到SQL SERVER的C#程序?

任何帮助都将受到高度赞赏。

4 个答案:

答案 0 :(得分: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包

答案 1 :(得分:1)

我会建议一个ETL(例如,见Talend Open Studio)。您设计了一个传输作业(必要时进行适当的转换),然后使用您的OS任务调度程序每天运行该作业。

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

答案 2 :(得分:1)

为什么不将数据永久迁移到SQL Server并使用Access应用程序作为SQL Server数据库的前端而不是Jet / ACE数据库?

答案 3 :(得分:1)

您还可以在C#中运行更新/删除/追加查询。使用varous IN子句指向有问题的数据库。你在C#中究竟是怎么做的我不知道,但在Access中这些很容易做到。

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

识别源表:

FROM tableexpression IN 
    {path | ["path" "type"] | ["" [type; DATABASE = path]]}
来自Access 97帮助