表中有一个字段的类型是char(1), txt文件中该字段中的值是数字时可以正常select出来,是字母时select出来就是null了,怎么回事呢?

解决方案 »

  1.   

    你是从txt文件中导入数据?估计是你的数据的问题,看看字符前面是不是有空格。
      

  2.   

    是从txt文件中导入数据。
    是有空格,但是若是数字的话也有空格,为什么能读出呢。
    而且从txt中select时并没有涉及到字段类型。
    是不是sql server默认为某种类型了。
    select *
    from OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=D:\')...[file#txt]
    file.txt中3行数据(第一行是表头字段):
    a,b,c
    309104            ,      1,                             A464930
    309105            ,      f,                             A464931用上面的脚本,select出的值是:
    309104 1 A464930
    309105 NULL A464931
      

  3.   

    应该是SQL自动转化的
    你试试309105            ,      ‘f’,                            A464931 就可以证明了
      

  4.   


    问题是从txt文件中select的时候并没有涉及到字段类型。有个字段的数据是 000023,字符型。用OPENDATASOURCE时会默认为数字型,从而自动去掉前面的0。用OPENROWSET也是一样的。