Sql server &引用;转换varchar值时转换失败';空';到数据类型int";

Sql server &引用;转换varchar值时转换失败';空';到数据类型int";,sql-server,Sql Server,当我将记录插入一个长表时,我得到了错误 “将varchar值'NULL'转换为数据类型int时,转换失败” 如何确定哪些列出错 该表有许多字段和数百万条记录。当我试图在某个整数列中插入“NULL”字符串时,每次迭代都需要10分钟的时间。我想SQL server可以告诉我列的确切名称:(开始一次注释一个内容,直到它停止轰炸。或者,看一看,对于int列,您传递的哪个值是NULL。您需要修复数据,还是可以将NULL转换为0进行插入 如果你可以转换,你可以用一个ISNULL函数包装正在转换的varcha

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


该表有许多字段和数百万条记录。当我试图在某个整数列中插入“NULL”字符串时,每次迭代都需要10分钟的时间。我想SQL server可以告诉我列的确切名称:(

开始一次注释一个内容,直到它停止轰炸。或者,看一看,对于int列,您传递的哪个值是NULL。

您需要修复数据,还是可以将NULL转换为0进行插入

如果你可以转换,你可以用一个ISNULL函数包装正在转换的varchar

ISNULL(col1,0)

如果该值真的是
NULL
,则不会出现转换错误。但是,如果您有一个string=“NULL”,则会出现此错误

你能做的是

NullIf(YourValueHere, 'NULL')
NullIf
如果第一个参数与第二个参数不相同,则返回该参数的值。如果参数相同,
NullIf
将返回
NULL

例:

第一个将返回'Any Value',第二个将返回
NULL
(非'NULL')

事实上,它提到了“varchar值'NULL',这表明您试图将列的值设置为字符串“NULL”,而不是值NULL


在您的语句中查找由引号括起的NULL一词。您需要删除这些引号。

长表是什么意思,您能显示导致问题的SQL吗?您在哪里看到此错误。您是从查询分析器运行脚本,还是从dotNet应用程序中的executeScalar调用中冒出脚本。一旦我们知道好吧,也许我们可以就如何解决这个问题提供一些更好的建议。我同意,这并不优雅,也不一定高效,但我会这样做的。
Select NullIf('Any Value', 'NULL')

Select NullIf('null','null')