SQL:语句触发每行的VS.
发布时间:2020-12-12 07:25:51 所属栏目:MsSql教程 来源:网络整理
导读:编辑:我不知道它是什么发行版,它在一篇试卷中. 遗憾的是,我只是没有得到这个.我对Row级触发器感到非常满意,但有人可以向我解释如果触发器是语句级别,结果会有什么不同吗? 关系/语句触发/行级触发 Employee(ID VARCHAR2(30),Salary NUMBER)Create Trigger Au
编辑:我不知道它是什么发行版,它在一篇试卷中.
遗憾的是,我只是没有得到这个.我对Row级触发器感到非常满意,但有人可以向我解释如果触发器是语句级别,结果会有什么不同吗? 关系/语句触发/行级触发 Employee(ID VARCHAR2(30),Salary NUMBER) Create Trigger AutoRaise After insert on Employee Referencing new table as NT update Employee Set salary = salary + (select avg(salary) from NT) Create trigger AutoRaise After insert on Employee Referencing new table as NT For each Row Update employee Set salary = salary + (select avg(salary) from NT) 据我所知,在每行触发器中,它会触发受触发语句影响的每一行.现在语句级别触发器会以不同方式修改结果吗?假如我在一个语句中插入了五个元组,它会为它们设置工资等吗?如果是这样,行级触发器的好处是什么? 我试过搜索,但我无法理解它. 谢谢, 编辑:现在,我只是密集,但要么触发产生不同的输出?对于语句级别触发器,如果??我使用示例值: 在触发器创建之前的表中: (A,50) 创建触发器后在一个语句中添加: (B,70),(C,30) 第一个触发器会设置插入每个元组的工资,当然?所以第一个将变为120(平均值为50,70 50 = 120),第二个变为80.如果这是真的,第二个触发器的结果如何不同? 解决方法不同之处在于,在语句级触发器的情况下,SELECT avg(salary)FROM NT将返回插入行的工资平均值,但在行级别的情况下,avg(salary)总是等于新记录的工资(每行执行的触发器)单独).此外,如果没有记录受影响,将执行语句级别触发器.在行级触发的情况下,当0记录受影响时,大多数RDMS不会触发它.边注.我认为问题中的触发机构仅作为例子给出;否则,我建议不要在触发器中使用递归,即使特定的RDMS有这样的选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读