带有触发器错误的 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][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
RODBC 与 ms-access 错误 07002 17 [Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确