我有一个即使存在一些错误也需要运行的存储过程。所以这里一个小exameple即使存在错误,也要保持存储过程运行
CREATE PROCEDURE FirstProcedure
@SomeParams
AS BEGIN
Declare Db_Cursor Cursor For
Select * From #TmpR
Open Db_Cursor
Fetch Next From Db_cursor Into
@SomaValues
While @@Fetch_Status = 0
Begin
set @ERR = 0
exec [SecondProcedure] @SomaValues
set @ERR = @@ERROR
if @ERR <> 0 begin
-- do some things in case of error
end
Fetch Next From Db_Cursor Into
@SomaValues
End
END
如果第二个过程的回报和错误我抓住它的@ERR变量,做一些其他的事情,但我想光标运行,直到表的末端,因为它不是非常重要,如果从100.000的2-3行不能使用SecondProcedure插入?
我该怎么办?
,把被击中前的错误,只有当它的安全执行代码进行检查,一些防御性的代码。 – Tanner 2015-02-10 14:33:28
你期待什么错误? – 2015-02-10 14:34:21
在不可为空的列中插入null,截断的字符串等等。 – CiucaS 2015-02-10 14:34:59