SQL Server Express 2008 を使用しており、データの一括挿入を行っています。理想的には、挿入に失敗したデータを出力する、より詳細なエラー メッセージが必要です。それは可能ですか?
1189 次
1 に答える
0
それは可能ですが、これを行うには多くの労力が必要になる可能性があります.サブシステムに必要なすべてを実行させる前に、サブシステムで数日間作業したことを思い出します. これは、エラーが発生すると、SQL が 2 つのエラー メッセージを続けて返し、2 番目のメッセージが曖昧で不明瞭であり、すべてのエラー処理が行われる (数は少ないが多すぎる) 場所の 1 つだと思います。関数は、実際の情報がある最初のメッセージではなく、その 2 番目の不十分なメッセージに関する情報にのみアクセスできます。目の前にコードはありませんが、ロジックは次のようなものでした。
- BULK INSERT で "errorfile" オプションを使用して、一括挿入が失敗した場合にエラー ファイルを生成します。
- 一括挿入呼び出しを TRY/CATCH し、返されたエラー番号を注意深く確認します
- エラーが適切なタイプである場合は、ファイルを開いて内容を読んで、どこで何が問題なのかを判断し、それを基にエラー メッセージを作成します。
とにかく厄介ですが、最終的にはかなりうまくいきました。挿入元のドライブ + パス + ファイル名が 128 文字を超えない限り (SQL 2005 では、2008 年には修正されなかったに違いありません)、一括挿入はお気に入りのコマンドの 1 つではありません。 .
于 2010-03-29T18:18:27.063 に答える