declare   @tb   table   (a   varchar(10)) 
insert   into   @tb   select   1 abc 
select   *   from   @tb declare   @tb   table   (a   varchar(10)) 
insert   into   @tb   select   1 as abc 
select   *   from   @tb 

解决方案 »

  1.   

    应该是个sql server的Bug
      

  2.   

    select   1abc 
    abc
    -----------
    1(1 row(s) affected)
      

  3.   

    呵呵。有点意思
    可为什么把abc当成了别名呢?而不是把bc或c当作别名呢?
      

  4.   

    看来1楼的解释是通的
    declare   @tb   table   (a   varchar(10)) 
    insert   into   @tb   select   1bc 
    select   *   from   @tb 
    =========
    declare   @tb   table   (a   varchar(10)) 
    insert   into   @tb   select   1 bc 
    select   *   from   @tb 
    =========
    declare   @tb   table   (a   varchar(10)) 
    insert   into   @tb   select   1 as bc 
    select   *   from   @tb 
    =========
    declare   @tb   table   (a   varchar(10)) 
    insert   into   @tb   select  cast(1 as varchar(10)) as bc 
    select   *   from   @tb 
      

  5.   

    我的理解是,1和abc是两种类型的数据,中间不需要任何分割符的
      

  6.   

    差不多,
    select abcd
    就会抱错
    只有前面是数字
    select 123sab
    sab
    123
    多谢