我不确定如何做到这一点。我们正在调试一个问题,如果插入成功,我们需要知道@@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())
编辑
也许更好的方式来说明问题是这样的:第一个插入发生了,但最后两个没有。这怎么可能?也许最后两个插入只是失败了?