0

SQL Server 2008 (sp2) ストアド プロシージャで、トランザクションを開始する前に 2 つの一時テーブルを作成します。私はトランザクションでそれらに挿入します。トランザクションがかなり大きなデータ セット (最大 1,200 回) をループすると、ストアド プロシージャは終了しません。具体的には、トレースはそれを示しています

SELECT * FROM #tmpTable2

以下のコードでは、開始しますが完了しません。ループが約半分の大きさになると、問題なく動作します。

IF [true] > 0 --error
BEGIN
    SELECT * FROM #tmpTable1
    SELECT * FROM #tmpTable2
    DROP TABLE #tmpTable1
    DROP TABLE #tmpTable2
    rollback TRANSACTION
    return -1
END

トレースでは、transactionlog失敗するポイントに到達するにつれて、イベントがより頻繁に発生することに注意してください。

何か案は?ありがとう!

4

0 に答える 0