我正在尝试这个
UPDATE table
SET col = CONVERT(int, col)
我正在
Msg 245,Level 16,State 1,Line 2 将varchar值“106/1”转换为数据类型int时,转换失败。
答案 0 :(得分:3)
如果是2012+,则可以使用TRY_CONVERT()... invalid将返回NULL
UPDATE table SET col = TRY_CONVERT(int, col)
如果不是2012 +
UPDATE table SET col = case when isnumeric(col+'.01')=0 then null else CONVERT(int,col) end
编辑(昨晚由Shnugo学习了isnumeric()技巧)