これを実現する方法がわかりません。問題をデバッグしており、挿入が成功した場合に @@Error がゼロ以外になる可能性があるかどうかを知る必要があります。@Error <> 0 の場合に終了するストアド プロシージャがあります。これに対する答えがわかっている場合は、それが役に立ちます。誰でも知っていますか?
コードは以下です。挿入が成功した場合に goto ステートメントに到達できるかどうかを知りたいのです。
-- This happened
insert into Workflow
(SubID, ProcessID, LineID, ReadTime)
values
(@sub_id, @proc_id, @line_id, @read_time)
set @error = @@Error
set @insertedWorkflowId = SCOPE_IDENTITY()
if @error <> 0
begin
set @error_desc = 'insert into tw_workflow'
goto ERROR_EXIT
end
-- This didn't happen
INSERT INTO Master.WorkflowEventProcessing (WorkflowId, SubId, ReadTime, ProcessId, LineId) VALUES (@insertedWorkflowId, @sub_id, @read_time, @proc_id, @line_id)
INSERT INTO Master.ProcessLogging (ProcessCode, WorkflowId, SubId, EventTime) VALUES (10, @insertedWorkflowId, @sub_id, GETDATE())
編集
何が問題なのかをより適切に説明するには、次のようにします。最初の挿入は行われましたが、最後の 2 つは行われませんでした。そんなことがあるものか?最後の 2 つの挿入が単に失敗しただけなのでしょうか?