8114: Error converting data type X to Y
SQL ServerЧто это значит?
Значение не удалось преобразовать из одного типа данных в другой, так как типы несовместимы. В отличие от ошибки 245, обычно это неудачное преобразование типа на уровне параметра/выражения (например, varchar в numeric).
Почему возникает?
Отправка нечислового или некорректного текста в числовой столбец/параметр; переполнение масштаба/точности; попытка преобразовать пустую строку ('') в 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'
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource
- 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