我目前不在某个地方测试任何这个,但想知道这是否是一个选项,所以我可以开始设计解决方案了。
我想在表上创建一个插入触发器。在这个插入触发器中,我想从inserted
虚拟表中获取值并使用它们来更新同一个表。这会工作还是会进入某种无限循环(即使触发器不是用于更新命令)。
作为示例,如果插入了一行(代表供应商的新费率/成本),我想更新同一个表,以使该供应商的旧费率/成本到期。过期是必要的,因为更新已经存在的记录,因此可以保留费率/成本的历史记录以用于报告目的(更不用说当前的报告基础结构期望发生这种类型的事情,并且我们正在将当前报告/数据迁移到SQL服务器)。
谢谢!
答案 0 :(得分:1)
如果您只有 一个INSERT触发器而没有UPDATE触发器,那么没有任何问题,但我认为您还要捕获UPDATE甚至DELETE。
INSTEAD OF触发器保证不会递归:
如果在a上定义了INSTEAD OF触发器 table执行一个语句 通常会开火的桌子 INSTEAD OF再次触发,触发器 不是递归调用的
使用和INSTEAD OF触发器,您必须同时执行原始INSERT和所需的更新。
答案 1 :(得分:0)
如果你没有在另一个UPDATE触发器中执行INSERT,这听起来不会对我造成任何问题。