2016-08-01 5 views
1

数百行のコードを持つSQLクエリがあります。私のエラーは何行ありますか?データ型nvarcharを数値に変換中にエラーが発生しました

クエリは正常に動作しますが、一部のデータはテーブルの基礎となるクエリで変更されています。

私は今、次のエラーメッセージに、数値に

変換エラーデータ型はnvarcharを取得しています。

スクリプト内の何百行ものコードのどれがエラーを引き起こしているかをどのように判断できますか?

私は潜在的にエラーをスローする可能性のある数十行のコードを持っています。

私は問題を引き起こしている可能性があるすべての行をコメントアウトし、データ型エラーの原因となるものが見つかるまで1から1のコメントを外す必要があります。

これはSQL Server 2014の単なる制限です。実際にエラーの行番号を指定するのではなく、何百行ものコードのどこかにエラーがありますエラータイプ)。

それは私に行番号を与えませんが、それは単にメイン選択ステートメントライン(コードのように、基本的には第1行)を指して....

+3

ヒントとして、これは、おそらく数値が '+'の引数として使用されているために発生します。そのため、演算は文字列連結ではなく加算とみなされます。 '+'演算子のすべての使用を 'concat()'関数に変更することができます。 –

答えて

2

これはすべてのレコードを返した場合、問題は、あなたのデータであり、ないスクリプト:

Select * 
from yourtable 
where isnumeric(yourfield) <> 1 
1

これは、基礎となるコードなしでエラーを引き起こしている内容を正確に把握するのは難しいです。 テーブルデータのいずれかに無効な数字が含まれているかどうかを確認することをお勧めします。そうでない場合は、中間データ(クエリで1つまたは複数の変換を受けたデータ)で同じテストを実行します。

SELECT * AS invalidNumerics 
FROM table 
WHERE isNumeric(column) <> 1 
関連する問題