UPDATE表SET col = CONVERT(int,col)

时间:2016-12-01 14:49:15

标签: sql-server

我正在尝试这个

UPDATE table
SET col =  CONVERT(int, col)

我正在

  

Msg 245,Level 16,State 1,Line 2   将varchar值“106/1”转换为数据类型int时,转换失败。

1 个答案:

答案 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()技巧)