“Conversion failed when converting the varchar val

2020-02-28 07:43发布

When I insert records into a long table,I am getting the error "Conversion failed when converting the varchar value 'NULL' to data type int" How can I determine which column errors out?

The table has many fields and millions of records. Each iteration takes 10 minutes to bomb when I try to insert "NULL" string into integer column somewhere. I thought SQL server can tell me exact name of the column :(

标签: sql-server
4条回答
小情绪 Triste *
2楼-- · 2020-02-28 08:02

Start commenting stuff out one at a time until it stops bombing. Or, take a look and see which value you're passing is NULL for an int column.

查看更多
Explosion°爆炸
3楼-- · 2020-02-28 08:08

If the value is truly NULL, there wouldn't be a conversion error. However, you have a string = "NULL" then you would get this error.

What you could do is...

NullIf(YourValueHere, 'NULL')

NullIf returns the value of the first parameter if it is not the same as the second parameter. If the parameters are the same, NullIf will return NULL.

Ex:

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

Select NullIf('null','null')

The first will return 'Any Value' and the second will return NULL (not 'null')

查看更多
趁早两清
4楼-- · 2020-02-28 08:18

Do you need to fix the data or can you just convert nulls to 0's for that insert?

If you can just convert, you could wrap your varchars that are getting converted with an ISNULL function. Just put the following around any values that are inserting into int fields.

ISNULL(col1,0)
查看更多
家丑人穷心不美
5楼-- · 2020-02-28 08:23

The fact that it mentions "the varchar value 'NULL'" indicates that you're trying to set the column's value to the string "NULL" instead of the value NULL.

Look in your statement for the word NULL surrounded by quotes. You'll need to remove these quotes.

查看更多
登录 后发表回答