私のクエリはしばらく実行され(行を出力)、その後停止し、次のエラーが発生します。
メッセージ 8115、レベル 16、状態 8、行 5 int を数値データ型に変換中に算術オーバーフロー エラーが発生しました。
それは、どの行 (FROM 句によって形成された行セットの - SQL クエリのどの行ではない) がこのエラーを引き起こしているかを教えてくれません。
クエリ オプションに移動し、「set arithabort」と「set ansi_warnings」のチェックを外すという古いトリックを使用しました。これにより、クエリが実行され続け、問題のセルに NULL が入力されます。
問題は、結果セットが多くの場所で正しく NULL を持つ可能性があるため、これは役に立たないことです。(また、エラー メッセージも同様にあいまいです:「算術オーバーフローが発生しました。」)
私はこれを理解しようと頭を悩ませています.カーソルまたはループを使用することを考えましたが、それぞれに問題があります.
このようなエラーが発生した場合、どの行が原因であるかを調べるために、皆さんはどうしますか?
更新: 以下の有益な提案に感謝します。彼らは素晴らしく、うまく機能します。ただし、その問題に取り組む前に (このクエリには多くの列があります)、エラーの原因となっている行を確認したかっただけです。幸いなことに、クエリ結果セットの最後の行は、エラーが発生する直前の行であると推測しました。その行のすぐ下のデータ (もちろん計算フィールドを除く) を表示するためにクエリを生で行ったところ、すぐに INT フィールドの 1 つに通常より大きい値があることに気付きました。
これは、以下のようなクエリを作成する前の適切な最初のステップのように思えますが、ありがとうございます。問題のあるデータを見て問題が明らかでない場合は、それらを保存しておきます。