首页 > 解决方案 > 为什么我无法保持从 Access 到 SQL Server 2012 的链接表连接?

问题描述

我有一个使用 SQL Server 2012 作为后端的 Access 2016 数据库(我必须使用它,因为这是客户端安装的)。我有一个非常奇怪的问题。在这个数据库中有两个表,它们的主键字段也是 Identity(1,1)。我能够毫无问题地将表链接到 Access(链接表管理器默认使用 ODBC 驱动程序 2013)。这些表在 Access 中显示为主键自动编号。到目前为止,一切都很好。

但是,当我退出 Access 并返回时,我发现虽然表仍处于连接状态,但它不再为新记录添加自动编号。换句话说,当我进入表格设计时,自动编号消失了,Access “忘记了”我将其设为身份字段,即使它仍然存在于 SQL Server 中。因此,我显然得到了“无法将 NULL 值插入...”错误,即使它之前添加了 Autonumber/Identity 就好了。

我找到的唯一解决方案是取消链接所有表(不仅仅是刷新)并重新执行链接表管理器过程。我还尝试了使用 SQL Server Native Client 2011 的自定义 ODBC 字符串,但是在执行此操作并导入时,经理要求我在这些表上定义一个主键,就好像它们在 SQL Server 中没有 PK 一样,当他们显然做。

我可能使用了错误的驱动程序?我应该把它放在我的 SQL2019 实例上并要求他们升级吗?因为我们已经完成了数据迁移,所以这将是更多的工作,所以我宁愿从 2012 年“升级”到 2019 年作为最后的手段。

标签: sql-serverms-accessodbc

解决方案


这可能与这个问题这个线程有关:

微软最近推出了一项更新,打破了 Access 在链接到 SQL Server 的表中查看身份字段的方式。然而,甚至最近,他们解决了这个问题。确保将 Access 更新到最新版本,并检查错误是否仍然存在。


推荐阅读