我有一個即使存在一些錯誤也需要運行的存儲過程。所以這裏一個小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