valor una tipo real error desbordado datos data convertir conversión columna sql-server

sql server - una - "La conversión falló al convertir el valor varchar ''NULL'' al tipo de datos int"



la conversión del valor varchar ha desbordado una columna int (4)

Cuando inserto registros en una tabla larga, obtengo el error "Error de conversión al convertir el valor varchar ''NULL'' al tipo de datos int" ¿Cómo puedo determinar qué errores de columna salen?

La tabla tiene muchos campos y millones de registros. Cada iteración tarda 10 minutos en explotar cuando intento insertar una cadena "NULA" en una columna entera en alguna parte. Pensé que SQL Server puede decirme el nombre exacto de la columna :(


¿Necesita reparar los datos o puede convertir nulos a 0 para esa inserción?

Si solo puede convertir, puede ajustar sus varchas que se están convirtiendo con una función ISNULL. Simplemente ponga lo siguiente alrededor de cualquier valor que se esté insertando en campos int.

ISNULL(col1,0)


Comience a comentar las cosas de a una por vez hasta que deje de bombardear. O bien, eche un vistazo y vea qué valor está pasando es NULL para una columna int.


El hecho de que menciona "el valor varchar ''NULL''" indica que está intentando establecer el valor de la columna a la cadena "NULL" en lugar del valor NULL.

Mire en su declaración la palabra NULL rodeada de comillas. Tendrá que eliminar estas citas.


Si el valor es realmente NULL , no habría un error de conversión. Sin embargo, tiene una cadena = "NULO" entonces obtendría este error.

Lo que podrías hacer es ...

NullIf(YourValueHere, ''NULL'')

NullIf devuelve el valor del primer parámetro si no es el mismo que el segundo parámetro. Si los parámetros son los mismos, NullIf devolverá NULL .

Ex:

Select NullIf(''Any Value'', ''NULL'') Select NullIf(''null'',''null'')

El primero devolverá ''Any Value'' y el segundo devolverá NULL (no ''null'')