存储过程的错误处理:
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
....