带有触发器错误的 Microsoft Access 链接表 (ASE)

Posted

技术标签:

【中文标题】带有触发器错误的 Microsoft Access 链接表 (ASE)【英文标题】:Microsoft Access linked table (ASE) with trigger error 【发布时间】:2018-05-02 11:36:05 【问题描述】:

我在 Microsoft Access 中有一个到 ASE 服务器的链接表。 在服务器端,该表没有主键或标识列。 并且在插入时有一个触发器来验证新条目,因此当条目未被验证时,它会从表中删除该条目并写入“table”_ERR 以让用户知道产生了什么错误。

将其链接到 Access 时,使用 10 列创建复合键。

我在 10 个不同的表中有相同的设置(所有的触发器都链接到 Access)

在这个特定的表中,当尝试通过 Access 向表中插入/追加记录时,我总是收到错误消息:

单行更新/删除影响了链接表的多行。唯一索引包含重复值。

当 table 和 table_ERR 都为空并且我只尝试插入 1 条记录时会发生此错误。

如果我禁用触发器,我可以通过 Access 插入记录没有问题

我在其他工作正常的表中有类似的触发器。 什么可能导致这个问题,有谁知道如何解决这个问题?

我已经读到 MS Access 可能会弄乱@@identity,即便如此在线提供的解决方案似乎都不起作用。

链接:https://groups.google.com/forum/#!msg/microsoft.public.sqlserver.programming/McHdRpPKMhs/SlyObU8w7JMJ

Stop Access from using wrong identity when appending to linked table on SQL server

提前致谢。

编辑:如果我尝试直接从管理软件(如 Aqua Data Studio)插入记录,则没有错误

【问题讨论】:

【参考方案1】:

如果不了解您的数据本身的更多细节,很难说出为什么会发生这种情况。

但是,在此特定链接表的特定实例中,您的 10 列不够独特,无法防止选择非不同的行。

建议的修复:

    添加主键。老实说,这可能是最好和最简单的选择。 如果由于某种原因您无法向表中添加(或更改)新列;您也许可以重新链接您的表格,并重新选择您的 10 列,以使它们更加独一无二。 除此之外,我认为我们还需要更多信息。

只是出于好奇,没有钥匙的原因是什么?

【讨论】:

该表没有键有它被使用只有一个“传输数据”表;最终用户将 excel 链接到访问文件中,然后复制-> 粘贴附加到它,并在该月的最后一天在其他计算中使用该数据 还有更多问题出在触发器上;如果我删除触发器,则不会以完全相同的设置显示错误消息

以上是关于带有触发器错误的 Microsoft Access 链接表 (ASE)的主要内容,如果未能解决你的问题,请参考以下文章

带有条件列的 Microsoft Access 2007 报表

带有内部联接和子查询的 Microsoft Access 更新语句

带有导航表单和子报表的 Microsoft Access 2013 上的奇怪行为

Microsoft Access 不会处理 vba

[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。

RODBC 与 ms-access 错误 07002 17 [Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确