発生しているエラーは、開いているトランザクションがない状態でロールバックしているためです (既に コミットまたはロールバック)。ストアド プロシージャの構造をクリーンアップし、ストアド プロシージャ全体を 1 つのトランザクションとして実行してから、エラーが発生した場合はロールバックすることを検討してください。トランザクションが開いているかどうかを確認することで、ロールバックが必要かどうかをテストすることもできます:
BEGIN TRANSACTION; BEGIN TRY --execute all your stored proc code here and then commit COMMIT; END TRY BEGIN CATCH --if an exception occurs execute your rollback, also test that you have had some successful transactions IF @@TRANCOUNT > 0 ROLLBACK; END CATCH
プレ>