列名或所提供值的数目与表定义不匹配这个说得很清楚了.仔细检查你的insert的列名数目.

解决方案 »

  1.   

    比如:有个表A,有字段a,b,你在插入表纪录的时候写成
    insert A(a,b) values(xx,xx,xxx)
    表只有2个列,你写了3个值进去,就会出现你描述的错误信息,具体是哪问题,你根据你的环境去检查一下就知道了。
      

  2.   

    insert(字段)跟values(字段)数量不一致
      

  3.   

    Sms_Qf_WaitSendXlt 和Sms_Qf_WaitSendXlt1 里的字段都一样吗?我查一下.语句都一样.现在你查查看.你再插入这两个表的时候.应该有一个表的结构会不一样.
      

  4.   

    declare @ReceDetail varchar(1000) 
    set @recedetail='select teacherid,mobile,path from jxtmsg.dbo.jxt_teacher where mobile <>'''' and ' 
    if @areaid is not null 
    begin 
    set @recedetail=@recedetail+' left(areaid,4)='+Convert(varchar,@areaid)+'' 
    end 
    else 
    begin 
    set @ret=1 
    return 
    end 
    if @schid is not null 
    begin 
    set @recedetail=@recedetail+' and schid='+Convert(varchar,@schid)+'' 
    end 
    declare @newReceDetail varchar(4500) 
    create table #HT_recemember(teacherid varchar(15),teachername varchar(10), mobile varchar(15),path varchar(10))--创建存在接收人对象的临时表 set @newReceDetail='insert into #HT_recemember  '+@ReceDetail @ReceDetail中选择出来的只有3列数据,
    而你定影的表#HT_recemember中有4列,
    所以不对应,所以出现错误.
    insert into #HT_recemember 
     select teacherid,mobile,path from jxtmsg.dbo.jxt_teacher where mobile <>....