【问题标题】:Automatically import new data from a MS Access database into SQL Server自动将新数据从 MS Access 数据库导入 SQL Server
【发布时间】:2018-09-14 14:06:30
【问题描述】:

我有一个全天插入数据的 Access 2003 数据库,我想转换为 SQL Server 数据库。有许多不同的工具和进程插入到 Access 数据库中,因此需要进行大量修改才能将它们全部更改为插入 SQL Server。

我知道微软有 a tool 将 Access 数据库转换为 SQL Server 数据库,但据我所知,它不能自动运行,也不能只导入新数据,因为最后一次“合并”(如有错误请指正)

解决这个问题的最佳方法是什么?也许是某种脚本?

谢谢。

【问题讨论】:

  • 您使用的是什么版本的 ms-access?如果它至少是 2010 或更高版本,您可以创建事件驱动的宏,其功能类似于 SQL 服务器中的trigger,这篇文章可能会有所帮助(stackoverflow.com/questions/5623440/ms-access-trigger),您可以自动将数据从 Access 插入到您的 SQL服务器
  • 我正在使用 Access 2003
  • 也许此工具适用于您的情况,“SQL Server Migration Assistant for Access (AccessToSQL)”(docs.microsoft.com/en-us/sql/ssma/access/…)
  • Microsoft 的 SSMA 的问题是我看不到自动运行迁移的方法。据我所知,它被用作从 Access 到 SQL 的一次性转换
  • @Andre Access端只有insert,SQL会只读

标签: sql-server database ms-access automation


【解决方案1】:

Access端只有insert,SQL会是只读的

然后我会这样做:

  • 将 SQL Server 表链接到 Access 数据库中
  • 运行 INSERT 查询以将新数据复制到服务器表中。这假定所有表都有主键。

查询将例如看起来像这样(空气代码):

INSERT INTO dbo_Customers
SELECT src.* 
FROM Customers AS src LEFT JOIN dbo_Customers AS tgt 
  ON src.ID = tgt.ID
WHERE tgt.ID IS NULL

Customers 是本地表,dbo_Customers 是服务器表。

查询从Customers 中选择dbo_Customers 中不存在的所有记录。


由于其他几个进程访问原始数据库,最好设置一个新的 Access 数据库,链接原始表和服务器表,并在新数据库中运行 INSERT 查询。您不希望在“数据”数据库中运行任何代码。

它可以是自动化的,例如使用Form_Timer 过程。

【讨论】:

  • 这似乎是我正在寻找的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 2014-05-18
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多