请问IF (@@ERROR <> 0) GOTO EXIT1 这句话在存储过程中是什么意思?有什么作用?
如果这句前面的语句执行出错(@ERROR=0表示前一句没错)则直接走到EXIT1的语句块执行
这是sqlserver 中的事务中会用到,@@error是执行语句后返回的错误码。Exit1只是设置的一个回滚点。
由于很多业务逻辑需要原子性的操作, 例如,存储过程A里面有2个插入操作。
且2个插入语句同时插入成功才算成功。如果语句1失败了,则需要回滚到未插入之前的操作。
如果有10个插入语句,那么这个回滚点的必要性就显而易见了。