代码之家  ›  专栏  ›  技术社区  ›  AGH

获取错误:merge语句在merge语句中指定的某些操作(而不是所有操作)上有一个instead of触发器

  •  -1
  • AGH  · 技术社区  · 6 年前

    我在一个表上有一个“instead-of-insert”触发器,用于生成自定义唯一代码,在同一个表上按存储过程插入大容量数据,但有些如何获取错误如下:

    merge语句的目标“xyz”在merge语句中指定的某些(而不是全部)操作上有一个INSTEAD OF触发器。在merge语句中,如果任何操作在目标上有一个enabled而不是trigger,那么所有操作都必须启用而不是trigger

    如对此有任何意见或建议,将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Zohar Peled    6 年前

    错误信息非常清楚-使用时 merge , instead of 触发器必须应用于 合并 语句可以执行。

    如果你 合并 有一个 insert 如果不匹配,则 update 匹配时,目标表必须具有 instead of insert 以及 instead of update 触发器,或者没有触发器。

    这在 合并 Microsoft文档的标题下的页面 Trigger Implementation :

    如果目标表上为merge语句执行的insert、update或delete操作定义了enabled-of-trigger,则它必须为merge语句中指定的所有操作都定义了enabled-of-trigger。