CREATE trigger points
on orders
for insert as
begin
    update [user] set jifen=jifen+I.points
    from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid
    
    insert [user]
    select userid, points=sum(points) from inserted  
    where userid not in (select userid from [user])
    group by userid
end
 这个运行的时候为什么提示:
服务器: 消息 213,级别 16,状态 4,过程 points,行 8
插入错误: 列名或所提供值的数目与表定义不匹配。是那里错了啊

解决方案 »

  1.   

    insert [user] 
    ---
    insert [user] (columnlist)
      

  2.   

    insert [user] 
    ---
    insert [user] (columnlist)
      

  3.   

    CREATE trigger points 
    on orders 
    for insert as 
    begin 
        update [user] set jifen=jifen+I.points 
        from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid 
        
        insert [user] (userid,points)
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 
    end 
      

  4.   

     insert [user] 
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 问题在于Insert 的栏位数目跟 Select 的栏位数目不一样多
      

  5.   


    CREATE trigger points 
    on orders 
    for insert as 
    begin 
        update [user] set jifen=jifen+I.points 
        from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid 
        
        insert [user] (userid, points)
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 
    end 
      

  6.   


    CREATE trigger points 
    on orders 
    for insert as 
    begin 
        update [user] set jifen=jifen+I.points 
        from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid 
        
        --下面这句有问题,添加时,加上字段。如:
        insert [user] (userid,points) 
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 
    end 
      

  7.   

    CREATE trigger points 
    on orders 
    for insert as 
    begin 
        update [user] set jifen=jifen+I.points 
        from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid 
        
        insert [user] (userid, points)
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 
    end 
      

  8.   

    CREATE trigger points 
    on orders 
    for insert as 
    begin 
        update [user] set jifen=jifen+I.points 
        from [user] join (select userid, points=sum(points) from inserted group by userid) I on [user].userid=I.userid 
        
        insert [user] (userid, points)
        select userid, points=sum(points) from inserted  
        where userid not in (select userid from [user]) 
        group by userid 
    end