首页 新闻 搜索 专区 学院

请问IF (@@ERROR <> 0) GOTO EXIT1 这句话在存储过程中是什么作用?

0
[已解决问题] 解决于 2017-12-22 15:10

请问IF (@@ERROR <> 0) GOTO EXIT1 这句话在存储过程中是什么意思?有什么作用?

你猜丶的主页 你猜丶 | 菜鸟二级 | 园豆:210
提问于:2017-12-08 15:40
< >
分享
最佳答案
0

如果这句前面的语句执行出错(@ERROR=0表示前一句没错)则直接走到EXIT1的语句块执行

奖励园豆:5
Daniel Cai | 专家六级 |园豆:10374 | 2017-12-08 16:29
其他回答(1)
0

这是sqlserver 中的事务中会用到,@@error是执行语句后返回的错误码。Exit1只是设置的一个回滚点。

由于很多业务逻辑需要原子性的操作, 例如,存储过程A里面有2个插入操作。

且2个插入语句同时插入成功才算成功。如果语句1失败了,则需要回滚到未插入之前的操作。

如果有10个插入语句,那么这个回滚点的必要性就显而易见了。

贫民窟大侠 | 园豆:4270 (老鸟四级) | 2017-12-09 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册