错误213:插入错误:列名或所提供值的数目与表定义不匹配。
仅当使用了列的列表,并且IDENTITY——INSERT 为ON 时,才能在表'shenpjg_b'中为标识列指定显式值。

解决方案 »

  1.   

    比如
    tb表 (id 为 IDENTITY 列)
    id name
    1  a
    2  b
    3  c则插入语句写为 insert tb values('d')
    而不是         insert tb values(4,'d')也可以设置 IDENTITY——INSERT 为ON,就可以用insert tb values(4,'d')了
      

  2.   

    是不是我的源表和目地表中都有一个ID列,然后都是设定的自动增长的,然后两者间的ID发生冲突无法插入引起的,?
    那插入语句要如何写?
      

  3.   

    set identity_insert tb on
      

  4.   

    set identity_insert shenpjg_b on
    update shenp set  状态说明=@stamptime
           where 审批单号 in (select 审批单号 from v_shenp where 审批单号 not in (select 审批单号 from shenp_b) and 审批意见 in('同意','不同意')  and 请求时间 > @filldate)  
    insert into shenp_b select 审批单号 from shenp where 状态说明=@stamptime
    insert into shenpjg_b select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
    insert into shenp_v_b select * from v_shenp where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
    delete shenp where 状态说明=@stamptime
      

  5.   

    insert into shenpjg_b select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
    只是这句报错吗?shenpjg_b 和 shenpjg 结构完全一样吗?
      

  6.   

    insert into shenpjg_b select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
    只是这句报错吗?还有别的报错,但是我知道要如何改了,并且改后应该没有问题,只是这句不知如何去改?我看了一下shenpjg这个表中的数据,发现以前插入到shenpjg_b的数据编号是与shenpjg表中的是一致的
      

  7.   

    insert into shenpjg_b select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
    改为
    insert into shenpjg_b(列名1,列名2...) select 列名1,列名2... from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明=@stamptime )
      

  8.   

    insert into tableName(col1,col2)
    select col1,col2
    也就是字段一定要一一对应。。