Microsoft Access链接表(ASE)与触发器错误

时间:2018-05-02 11:36:05

标签: ms-access triggers odbc ms-access-2016 linked-tables

我在Microsoft Access中有一个到ASE服务器的链接表。 在服务器端,该表没有主键或标识列。 并且在insert上有一个触发器,用于验证新条目,这样当条目未经过验证时,它会删除表中的条目并写入“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 个答案:

答案 0 :(得分:0)

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

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

建议修复:

  1. 添加主键。老实说,可能是最好和最简单的选择。
  2. 如果由于某种原因,您无法向表格添加新列(或更改);您可以重新链接您的表格,并重新选择10列,以便它们更多唯一。
  3. 除此之外,我认为我们需要更多信息。
  4. 出于好奇,没有钥匙的原因是什么?