Getting Error:MERGE语句对MERGE语句中指定的某些操作(但不是全部操作)具有INSTEAD OF触发



我在一个表上有一个"而不是插入"触发器来生成自定义的唯一代码,并在同一表上通过存储过程插入批量数据,但有些错误如下:

MERGE语句的目标"xyz"对MERGE语句中指定的某些操作(但不是全部操作(具有INSTEAD of触发器。在MERGE语句中,如果任何操作在目标上都启用了INSTEAD OF触发器,那么所有操作都必须启用了INSTEAD OF触发器

如有任何意见或评论,我们将不胜感激。

错误消息非常清楚-使用merge时,instead of触发器必须应用于merge语句可能执行的所有操作或不执行任何操作。

如果您的merge在不匹配时有一个insert,在匹配时有update,则目标表必须有instead of insertinstead of update触发器,或者没有触发器。

这在微软文档的merge页面中也有很好的记录,标题为触发器实现:

如果目标表上为MERGE语句执行的插入、更新或删除操作定义了启用的INSTEAD OF触发器,则它必须为MERGE声明中指定的所有操作启用INSTEAD OF触发器。

最新更新