2012-05-18 94 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