2017-10-20 10 views
0

最初にspOBJ_CopyInspectiontaskにエラーがないかどうかをチェックする必要があります。エラーがなければ、それだけを挿入ステートメントに進みます。プロシージャ内で手続きを呼び出す

DECLARE @tblSystemId TABLE 
        (
         OldSysId int, NewSysId int, 
         OldTaskId int, NewTaskId int, 
         TaskObjectIds varchar(max) null 
        ); 

INSERT INTO @tblSystemId (OldSysId , NewSysId, OldTaskId, NewTaskId, TaskObjectIds)    
    EXEC dbo.spOBJ_CopyInspectiontask @UserId, @TargetCustomerId, @TargetContractId, @TargetSiteId, @SourceCustomerId, @OldTaskId, @SystemName, @Checkall, @CopyReports, @Return OUTPUT, @ObjectIds OUTPUT; 

どうすれば確認できますか?

+0

が開始されなければなりません。したがって、dbo.spOBJ_CopyInspectiontaskへの呼び出し中にエラーが発生した場合、トランザクション全体がロールバックされ、この文によって@tblSystemIdに行が挿入されません。なぜあなたは、私が上記で説明したデフォルトの動作で満足していないのですか? –

答えて

2

おそらく、あなたは、try/catchブロックします:挿入のためにMS SQL Serverの暗黙的なトランザクションにデフォルトで

BEGIN TRY 
    INSERT INTO @tblSystemId (OldSysId , NewSysId, OldTaskId, NewTaskId,TaskObjectIds)    
     EXEC dbo.spOBJ_CopyInspectiontask @UserId,@TargetCustomerId, @TargetContractId, @TargetSiteId, 
      @SourceCustomerId, @OldTaskId, @SystemName, @Checkall, @CopyReports, @Return OUTPUT, @ObjectIds OUTPUT; 
END TRY 
BEGIN CATCH 
    -- do something here in the event of failure 
END CATCH; 
+0

私にお試しください...ありがとうございます –

+0

ワーキングファイン。ありがとうございました –

関連する問題