为什么: select isnumeric('0000d2') 返回 1,但是: SELECT CAST('0000d2' AS numeric) 却提示:服务器: 消息 8114,级别 16,状态 5,行 2
将数据类型 varchar 转换为 numeric 时出错。

解决方案 »

  1.   

    select isnumeric('0000e2') 這個也返回一,好像是個BUG。
      

  2.   

    为什么: select isnumeric('00002') 
    但是: SELECT CAST('00002' AS numeric) 
      

  3.   

     select isnumeric('0000d2') SELECT CAST('00002' AS numeric(14,2))   --中间不能有特殊字符!
      

  4.   

    '0000d2'在第2个句子中理解为字符串第一个句子中理解为有效的整数、浮点数、money 或 decimal 类型了
      

  5.   

    我用的是SQL2008SP1的,都存在這個問題。
      

  6.   

    0000d2为浮点数
    用convert(float,'000d2')就不出错
    numeric为10进制数,格式与000d2不美容
      

  7.   

    [
    select isnumeric('00000d2'),isnumeric('00000e2')
    go
    ----------- -----------
    1           1(1 行受影响)
    严重的BUG