“将varchar值'NULL'转换为数据类型int时转换失败”

时间:2009-01-09 17:25:15

标签: sql-server

当我将记录插入长表时,我收到错误 “将varchar值'NULL'转换为数据类型int时转换失败” 如何确定哪些列错误?

该表包含许多字段和数百万条记录。当我尝试在某处将“NULL”字符串插入整数列时,每次迭代需要10分钟才能完成。我以为SQL服务器可以告诉我列的确切名称:(

4 个答案:

答案 0 :(得分:12)

如果值为真NULL,则不会出现转换错误。但是,你有一个string =“NULL”然后你会得到这个错误。

你能做的是......

NullIf(YourValueHere, 'NULL')

NullIf返回第一个参数的值,如果它与第二个参数不同。如果参数相同,NullIf将返回NULL

例如:

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

Select NullIf('null','null')

第一个将返回'Any Value',第二个将返回NULL(不是'null')

答案 1 :(得分:4)

它提到“ varchar 值'NULL'”这一事实表明您正在尝试将列的值设置为字符串“NULL”而不是值NULL。

在你的语句中查找用引号括起来的单词NULL。您需要删除这些引号。

答案 2 :(得分:2)

一次开始评论一次,直到它停止轰炸。或者,看一看,看看你传递的值对于int列是NULL。

答案 3 :(得分:2)

您是否需要修复数据,或者只是将空值转换为该插入的0?

如果你可以转换,你可以用ISNULL函数包装转换的varchars。只需将以下任何值插入到int字段中即可。

ISNULL(col1,0)