存储过程的错误处理: create proc p_test @reErr int output as exec('insert into 表 values(1)') --如果不用exec,直接执行的话,就捕捉不到错误 set @reErr=@@error if @reErr<>0 print '插入错误' go
SP的错误处理应该这样: CREATE PROCEDURE dbo . pro_A …… AS …… DECALRE @RC INT SELECT @RC=0 if(@RC=0) BEGIN SELECT..... UPDATE... SELECT @RC=@@ERRRO IF @RC<>0 BEGIN SELECT @RC=-5001 RETURN @RC END ELSE ....