【问题标题】:Copy access database to SQL server periodically定期将访问数据库复制到 SQL 服务器
【发布时间】:2012-09-05 00:01:04
【问题描述】:

我有一个 access 2003 数据库,其中包含我所有的业务数据。该访问数据库在白天每隔几个小时更新一次。

我们目前正在编写一个需要使用访问数据库中的数据的网站。该网站(暂时)将具有only只读功能。这意味着只需要一种数据传输方式(Access -> SQL)。

我想有一种方法可以以编程方式从访问 SQL 服务器执行此数据迁移。有没有人有我能读到的东西的链接?

如果这种做法听起来很奇怪,并且您想建议另一种方法来执行此操作(或者数据可以双向传输(Access -> SQL、SQL -> Access)的情况,那很好。

公司将继续使用 Access 2003 来实现其业务功能。没有办法解决这个问题。但我想在 SQL Server 之上构建(只读)网站。

【问题讨论】:

    标签: sql-server database ms-access


    【解决方案1】:

    您概述的策略可能非常具有挑战性。您可以使用 INSERT 查询将新的 Access 行复制到 SQL Server,如另一个答案中所述。

    但是,如果您对现有的 Access 行进行了更改,并且还希望将这些更改传播到 SQL Server,那么事情就不会那么简单了。如果您还想从 SQL Server 中删除 Access 行,那将更加复杂。

    对我来说,使用不同的方法似乎更合理。将数据迁移到 SQL Server 一次。然后用指向 SQL Server 表的 ODBC 链接替换 ​​Access 数据库中的表。此后,从 Access 应用程序中对数据的更改将不需要单独的同步步骤……它们已经在 SQL Server 中。而且您不需要编写任何代码来同步它们。

    如果您担心 Web 服务器和 SQL Server 之间的连接是只读的,只需按这种方式设置即可。您仍然可以单独授予 Access 应用程序的读写权限。

    【讨论】:

      【解决方案2】:

      要进行初始数据迁移并自动设置 SQL Server,我会使用SQL Server Migration Assistant。我能想到的唯一绝对应该改变的事情是关闭任何具有它的列上的 Identity 属性 - 将在下面解释(MS Access 调用 Identity autonumber)。加载表格后,您可以为刚刚创建的数据库(和表格)设置dsnless connection

      我没有使用刚刚链接的方法,但我相信它允许您使用SQL Server身份验证连接到数据库。使用此方法的好处是您可以轻松更改要连接到的 SQL Server 实例和/或数据库以进行开发和测试。

      可能有更好的自动化方法,但您可以创建多个插入查询,从 Access 表的主键到 SQL Server 表进行左连接,并放置一个 WHERE 子句指定 SQL Server PrimaryKey 必须为空。这就是为什么您需要关闭 SQL Server 表中的 Identity 属性,以便您可以插入新数据。

      最后,将每个查询的名称放在一个函数中,然后定期运行该函数。

      【讨论】:

        【解决方案3】:

        我已使用 Microsoft 的免费 SQL Server Migration Assistant (SSMA) 将 Access 迁移到 SQL Server。该工具使用起来非常简单。我在使用该工具时遇到的唯一问题是迁移时数据类型过载。我的意思是在某些情况下,一个小字符串会被转换为NVARCHAR(MAX)。否则,该工具非常方便,可以在设置“配置文件”后重复使用。

        【讨论】:

          猜你喜欢
          • 2021-03-25
          • 1970-01-01
          • 1970-01-01
          • 2017-11-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多