欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请教大家一个触发器中更新语句的有关问题

更新时间: 2014-01-05 02:17:03 责任编辑: Author_N1

 

请问大家一个触发器中更新语句的问题
请教大家一个问题,我在触发器要执行下面的操作
update t1 set t1.price=t2.price
from table 1,inserted t2
where t1.ID=t2.SourceID
and t2.SourceType='采购订单'

我需不需要在这个语句前面加一个if条件呢?比如:
if exists(select 1 from inserted where SourceType='采购订单')
begin

update t1 set t1.price=t2.price
from table 1,inserted t2
where t1.ID=t2.SourceID
and t2.SourceType='采购订单'

end

我在所有的触发器的第一行都有加
if @@rowcount=0 return

请问,如果不加if条件,会有可能存在什么隐患么?
--参考方法--
Update不需要了吧,没有数据就更新0条而已!
--参考方法--
哦,不用加的,因为你在update语句中加了条件: t2.SourceType='采购订单'

所以,经过这个条件过滤之后,只有满足要求的数据,才会被update
--参考方法--
if @@rowcount=0 return 
这句是表有数据往下执行,表不会删到只有0条加不加都一样

if exists(select top 1 SourceType from inserted where SourceType='采购订单')
这句这样就快很多
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:03
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7942/
本文WWW.DOC100.NET DOC100.NET版权所有。