8114: Error converting data type X to Y(データ型 X から Y への変換エラー)
SQL Server意味
型に互換性がないため、値をあるデータ型から別のデータ型に変換できなかった。エラー 245 とは異なり、通常はパラメータ/式のレベルでの型変換の失敗である (例: varchar から numeric)。
原因
数値以外または不正な形式のテキストを数値列/パラメータに送信した、スケール/精度のオーバーフロー、空文字列 ('') を数値に変換しようとした、またはパラメータ化クエリで誤った型の引数を渡した。ORM が生成する暗黙の変換でよく見られる。
対処方法
変換される値が対象の型に適合することを確認する。安全な変換には TRY_CONVERT / TRY_CAST を使用する。失敗時に NULL を返すため、それらの行を WHERE で除外できる。パラメータの型を列の型に合わせる。ISNUMERIC/TRY_CAST でデータを走査して問題の行を見つけ、空文字列を整理する。
同じデータベースの他の項目
- 40544The database has reached its size quota (Azure SQL)(データベースがサイズクォータに到達)
- 40613Database is not currently available (Azure SQL)(データベースが現在利用できない)
- 102Incorrect syntax near 'token'('token' 付近の構文が正しくない)
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource(SQL Server データベースエンジンのインスタンスが LOCK リソースを取得できない)
- 3906Failed to update database because the database is read-only(データベースが読み取り専用のため更新に失敗)
- 15023User already exists in the current database(ユーザーは現在のデータベースに既に存在する)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication(ログイン失敗。信頼されていないドメインからのログインで Windows 認証に使用できない)