2 u013983498 u013983498 于 2015.06.11 22:48 提问

sql触发器结果没有更新

create trigger tr_cost
on stu_inf
for update
as
declare @bukao int
begin

select @bukao=补考次数
from v_cost

if @bukao>=2
begin

update stu_inf

set 学习费用=学习费用 * 1.1
where 学员编号 in(select 学员编号
from stu_inf)
end
end

#

请问这个触发器为什么在表中没有显示结果,stu_inf 表中学生费用还是没有变化

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.11 23:15
已采纳
虽然逻辑有些不正常,但触发器应该没问题,是有反应的,
1、看一下v_cost最后一条记录的补考次数是否是大于等于2的,也就是如果v_cost有2条记录,第一条补考次数是3,第二条记录补考次数是1,则结果@bukao的值是1
2、触发器需要是update stu_inf表的时候才执行,insert或者delete无效。

u013983498
u013983498 补考次数都是2呢
大约 3 年之前 回复
Carry_Dominator
Carry_Dominator   2015.06.11 22:57

这个在这里真的不好说啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SQL Server 触发器中 Update的方法 判断一列是否更新
Every one know `s that : 触发器中我可能会因为某一个字段的值被修改了,我才会触发这个Trigger,ok,我们会写   if  Update(Column1) 这样的语句,ok,没问题,但你要清楚,这个判断是基于你的SQL 语句,也就是说,你数据库里Column1的值 是 A ,你用一条SQL 把这个Column1 还是Update 成 A,那么这个if  Update(C
sqlserver触发器根据COLUMNS_UPDATED内容生成动态更新列
关于动态生成select指令,根据条件选取特定的列,这个方法就不再细说了,百度一大把,基本就是拼接sql指令,然后exec sp_executesql 关于触发器,也不细说了,也是百度一大把 然后进入正题,怎么获取到当前表到底是哪几个字段更新了?更新是否有效? 进行简单的尝试后,发现一个问题,无法将 inserted 和 deleted 表作为参数传递给 exec s
在SQL Server触发器中如何判断哪些列被更改(还没试过)
<br />在触发器中判断哪些列被更改有以下两种方法:<br />  第一、可以使用Update()函数 ,语法:Update(列名);返回值:bool值。如果该列被更新则为True,否则为False。该函数比较方便也比较实用。<br />  第二、使用COLUMNS_UPDATED()函数。 语法:COLUMNS_UPDATED () ;返回值:varbinary <br />      1.八列以内的表。可以直接使用 COLUMNS_UPDATED()函数来判断。比如:要测试一下第一列有没有被修改,则可
SqlServer Update触发器判断某个字段的值是否已经更改
要求:修改主表中某个字段的值,自动更新子表中的某个字段 我们为了不更改程序,创建一个update触发器。 create trigger [tig_update] on 表名 after update   as  declare @id int begin if (update(主表列名)) begin select @id=id from inserted
SQL Server 触发器中 Update的方法 判断一列是否更新 <转>
Every one know `s that : 触发器中我可能会因为某一个字段的值被修改了,我才会触发这个Trigger,ok,我们会写   if  Update(Column1) 这样的语句,ok,没问题,但你要清楚,这个判断是基于你的SQL 语句,也就是说,你数据库里Column1的值 是 A ,你用一条SQL 把这个Column1 还是Update 成 A,那么这个if  Update(C
SQL 更新触发器的使用
CREATE TRIGGER [dbo].[trig_so_salesOrder_update] ON [dbo].[so_salesOrder] AFTER update AS //定义一个变量 DECLARE @sfname varchar;//判断是否有数据插入 if @@rowcount = 0 return //判断插入的数据字段sfname是
一条SQL 语句执行后返回2笔受影响--如果没有触发器,那就是点到"包括实际的执行计划"!
昨晚相当郁闷,明明查询时只有一笔记录,却在执行update的时候出现两笔受影响!同一个数据库换台电脑执行却只有一笔受影响,苦苦冥思不得其姐,又百度数次,无果!最后电话BOSS,被告知是否客户端点击到“包括实际的执行计划”,乍一看!奶奶的!竟然有个选中的颜色!取消之,同样的语句,执行后就变成一笔受影响!果不其然,姜还是老的辣!在此发博文,希望遇到此现象朋友得以解决! :没有触发器
Microsoft SQL Server 触发器更新、删除、插入表
//表插入CREATE TRIGGER INSERTDATEON A1AFTER INSERTAS BEGIN INSERT INTOA2 (A2NAME) SELECT A1NAME FROM INSERTED END表同步插入CREATE TRIGGER DELETEDATEON A1AFTER DELETEAS BEGIN DELETE A2WHEREA2NAME IN(SELECT A1N
SQL Server 触发器:表的特定字段更新时,触发Update触发器
create trigger TR_MasterTable_Updateon MasterTableafter updateas if update ([Type])--当Type字段被更新时,才会触发此触发器  insert into MasterLogTable  select   Id  ,(Case [Type] when 1 then Type1    when 2 then Ty
sqlserver-触发器-判断更新了哪个字段。
create trigger 触发器名称 on 表名(将触发器创建到那张表中) for update as if update(判断更新字段) begin update (要更新的表名) set 字段=inserted.字段 from 要更新的表名 ,inserted end