不是说char型才补,varchar型不补么?我Insert的时候明明没有空格的
因为上头要我查清楚原因,所以我不能简单地trim就解决了,要给他们个说法
拜托各位兄弟,有没有遇到这种情况的?

解决方案 »

  1.   

    是不补的,看看你表结构是否确认改为varchar了.
      

  2.   

    varchar字符类型 为变长类型,字段的值即是插入的值。你可以跟踪一下你提交的语句是否有包含空格的。
    LZ有怀疑,可以自己做一次测试即可明白、
      

  3.   

    sp_help 表 看看这个字段是不是varchar类型
      

  4.   

    应该不会的。如果不是你的源数据中带空格,就是你的表中用的还是char类型。
      

  5.   

    偷偷地给我补个空格
    -----------------------LZ是怎么发现后面有空格的? 是实际打印出来看到的字段长度和实际的字符数不符吗?用LEN()函数好好看看是不是真的加了空格另外在传参数的时候有没有用char类型存放过数据
      

  6.   

    我用csv导出的时候,发现后面有极少数据确实有个空格追在后面,
    大部分是没有的,正常的.....
      

  7.   

    肯定不是varchar的问题.要么是你数据库改为了char,或是你插入的数据有问题.
      

  8.   

    不是类型(varchar)的问题你看到的结果,是数据库中的结果,还是你导出数据显示的结果
    在某些情况下,导出的数据可能会出现此问题
      

  9.   

    大部分没有,极少部分有```
    应该是在程序中输入的时候。有的有空格,程序中没有去掉吧。。
    而且varchar类型也不会补空格的噢
      

  10.   

    不会自动补,查一下看哪些有空格
    select * from [Table] where len([Field])>len(rtrim([Field]))
      

  11.   


    如果你的数据库确实是VARCHAR 的话 那就是你前端程序的问题VARCHAR 自动截断后便的空格的create table #t(n varchar(100))insert into #t values('a       ')insert into #t values('     a')select n,[len]=len(n) from #t
    n        len
    --       ----
    a         1
         a    6
    (2 行受影响)