基本的に次のようなストアドプロシージャ内にカーソルを作成しました。
OPEN curr
Fetch NEXT FROM curr into @ID, @IsCC, @JurisdictionID
While @@FETCH_STATUS = 0
Begin
--Code for Update and Insert operations
Fetch NEXT FROM curr into @ID, @IsCC, @JurisdictionID
End
CLOSE curr
DEALLOCATE curr
While ループで、外部キー違反の Insert ステートメントの 1 つで例外が発生しました。だから私はそれを修正しましたが、この例外の後、アプリケーションを実行しようとすると、最も単純なクエリでさえ実行できず、Timeout expired
. Sql Server サービスを再起動して初めて、すべてが適切に開始されたように見えます。
私の推測では、ステートメント CLOSE と DEALLOCATE は、例外でヒットした後に実行されませんでした。このようなケースが発生した場合はどうすればよいですか?これが本番環境で発生した場合、ジャガイモのようにつぶれてしまうのではないかと心配しています。