A表列名
订单号、商品名称
B表列名
订单号、运费
C表列名
订单号、商品名称、运费
我想在B表里创建一个触发器实现
如果A表的订单号=B表的订单号
那么就将满足上面条件的订单号、商品名称、运费全部插入进C表以下是某网友给出的答案
create trigger tri_b on b for insert,update,delete
as
delete c from b,c where b.订单号=c.订单号
insert into c select a.*,b.运费 from a,b
where a.订单号=b.订单号
提示了 插入错误: 列名或所提供值的数目与表定义不匹配
请问下具体该怎么写。

解决方案 »

  1.   

    insert into c select a.*,b.运费 from a,b 和c的列个数不一样
      

  2.   

    --提示很明显啊
    insert into c(这里显示加入字段) 
    select a.*,b.运费 from a,b
      

  3.   

    create trigger tri_b on b for insert,update,delete
    as
    delete c from b,c where b.订单号=c.订单号
    insert into c(订单号,商品名称,运费) select a.订单号,a.商品名称,b.运费 from a,b
      

  4.   

    [code=SQL]insert into c 
    (订单号,商品名称,运费
    )select a.订单号,A.商品名称,b.运费 from a,b
    where a.订单号=b.订单号[/code]
      

  5.   

    create trigger tri_b on b for insert,update,delete
    as
    delete c from b,c where b.订单号=c.订单号
    insert into c(订单号,商品名称,运费) select a.订单号,a.商品名称,b.运费 from a,b
      

  6.   

    唉与我遇到的情况不一样,唉.
    遇上的事,不同IIS服务机相同数据库时,仅有一台机器正常,其他的均报此错误.