表tableinfo      id
12.5    22
公鸡     39
22       88
请问info列有char类型,也有int和float,我不想直接用个nvarchar(max),我想根据实际输入是什么类型就可以生成到数据库是什么类型,请问高手有什么方法吗?

解决方案 »

  1.   

    大哥,我要是用varchar那还有难度吗?我还需要在这里来提问吗?
      

  2.   

    用这个数据类型:sql_variant
     
      

  3.   

    貌似我没看懂declare @t table([info] varchar(4),[id] int)
    insert @t
    select '12.5',22 union all
    select '公鸡',39 union all
    select '22',88select * from @t WHERE ISNUMERIC(info)=1
    /*
    info id
    ---- -----------
    12.5 22
    22   88
    */
      

  4.   

    sql_variant
    必要的时候用,不然在做查询、计算的时候需要转换类型,不安全。