我有游标,如果记录不存在,则更新表或添加数据。我的要求是
OPEN CURSOR
Fetch Next
While @@fetch_status = 0
if (Record found) then
call update stored procedure
else
call Add stored procedure
现在,我遇到的问题是,更新/添加存储过程调用多个其他存储过程来做操作。如果任何其他存储过程有任何问题,我需要回滚所有内容
我尝试使用Begin Transaction
并检查是否@@Error
但是它无法正常工作。
有任何帮助吗?我正在使用SQL Server 2008
答案 0 :(得分:3)
Open Cursor
Fetch Next
While @@fetch_status = 0
BEGIN TRY
BEGIN TRANSACTION
if (Record found) then Call update Store proc
else
Call Add store proc
Commit transaction
End try
Begin Catch
if @@Trancount > 0 ROLLBACK TRANSACTION
END CATCH
FETCH NEXT