8114: Error converting data type X to Y
SQL Server¿Qué significa?
No se pudo convertir un valor de un tipo de datos a otro porque los tipos son incompatibles. A diferencia del error 245, suele tratarse de una conversión de tipo fallida a nivel de parámetro/expresión (p. ej., de varchar a numeric).
¿Por qué ocurre?
Enviar texto no numérico o mal formado a una columna/parámetro numérico; desbordamiento de escala/precisión; intentar convertir una cadena vacía ('') a numérico; o pasar un argumento del tipo equivocado en una consulta parametrizada. Habitual con las conversiones implícitas que generan los ORM.
Cómo solucionarlo
Verifique que los valores convertidos encajen en el tipo de destino. Use TRY_CONVERT / TRY_CAST para una conversión segura; devuelven NULL si fallan, de modo que puede filtrar esas filas con WHERE. Haga coincidir los tipos de los parámetros con los de las columnas. Analice los datos con ISNUMERIC/TRY_CAST para encontrar las filas problemáticas y limpie las cadenas vacías.
Más entradas de este motor
- 40544The database has reached its size quota (Azure SQL) (la base de datos alcanzó su cuota de tamaño)
- 40613Database is not currently available (Azure SQL) (la base de datos no está disponible en este momento)
- 102Incorrect syntax near 'token'
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (la instancia de SQL Server Database Engine no puede obtener un recurso LOCK)
- 3906Failed to update database because the database is read-only (no se pudo actualizar la base de datos porque es de solo lectura)
- 15023User already exists in the current database (el usuario ya existe en la base de datos actual)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (error de login; el login procede de un dominio no confiable y no puede usarse con autenticación de Windows)