sql中的begin....end


Begin
...
End
之间的是一个语句块,一般Begin...End用在  ( 相当于  {})
while
if等语句中
在T_SQL中,if/while后只能紧跟一条sql语句,如果有多条则应该用Begin..end包含起来
如:
if (@int > 9)
set @int = 1
else
set @int = 0
这里的if后面只把变量@int设为1,没有其它的操作,所以这里可以省去begin..end
但如果有多条,如
if(@int > 9)
begin
set @int = 1
select * from tablename
end
这里就必须用begin..end
否则
select语句就永远都会被执行一次

 

 

应用于mybatis  当有多个delete时 :

<delete id="deleteHdsqByProcessinstid">

BEGIN

delete from wfworkitem c where c.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);
delete from wfactivityinst c where c.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);
delete from wftransctrl e where e.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);
delete from wftransition g where g.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);
delete from wfwiparticipant i where i.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);
delete from wfprocessinst a where a.processinstid in (select b.processinstid from wfprocessinst b where b.PARENTPROCID=#processinstid#);

delete from wfworkitem where processinstid=#processinstid#;
delete from wfactivityinst where processinstid=#processinstid#;
delete from wftransctrl where processinstid=#processinstid#;
delete from wftransition where processinstid=#processinstid#;
delete from wfwiparticipant where processinstid=#processinstid#;
delete from wfprocessinst where processinstid=#processinstid#;
END;
</delete>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM