declare @t char(4)
select @t='aa'
select @t=@t+'bb'
select @t为什么我得到的是aa而不是aabb?

解决方案 »

  1.   

    因为@t定义为char(4),因此实际上你的值为
    "aa  "--后面有两个空格,所以即使你加上任何字符,都已经超长了,所以就是这样的效果.
      

  2.   

    因为@t定义为char(4),因此实际上你的值为
    "aa  "--后面有两个空格,所以即使你加上任何字符,都已经超长了,所以就是这样的效果.
      

  3.   

    你要想结果正确,把变量定义成为varchar(4)就对了char定义,如果值不足长度,后面是用空格填补的.
      

  4.   


    declare @t char(4)  
    select @t='aa' 
    select datalength(@t)
    /*
    ---
    4
    */