データベース全体を作成し、すべてのレコードを数十のテーブルに挿入するスクリプトがあります。処理中に問題が発生しない限り、うまく機能し、スクリプトが挿入中に失敗し、再びオフに設定できるようになる前に、テーブルが IDENTITY_INSERT ON のままになります。
これが発生すると、スクリプトを再度実行しようとすると、最初のテーブルの挿入に進むときに「IDENTITY_INSERT is already ON for table xx」というエラーが表示され、自動的に失敗します。
フェールセーフとして、セットアップ スクリプトで残りの処理を実行する前に、すべてのテーブルで IDENTITY_INSERT が OFF に設定されていることを確認したいと思います。
別の方法として、MS SQL 接続を閉じてから再度開くこともできます。これにより、接続セッションのすべての IDENTITY_INSERT 値がクリアされると理解しています。
これを行い、「既にオン」のエラーを防ぐ最善の方法は何ですか?