create trigger test on transaction 
for
insert
as 
begin
update reservation set mServercharge=a.mServercharge+b.mServercharge from reservation a,instered b where a.cCustomerid=b.cCustomerid
end
没考虑reservation不存在cCustomerid的情况

解决方案 »

  1.   

    如果一次插入多行,相同的cCustomerid恐怕要用游标
      

  2.   

    大体这意思,没式过:
    create trigger test on transaction 
    for
    insert
    as 
    begin
    declare @sCus varchar(20)
    declare @Ser float
    declare cur1 cursor for
    select  cCustomerid,mServercharge from inserted
    open cur1
    fetch next from cur1 into @sCur,@Ser 
    while @@fetch_status<>-1
    if exists (select count(*) from reservation  where cCustomerid=@cCur )
    update reservation set mServercharge=mServercharge+@Ser  where cCustomerid=@cCus
    else
    insert reservation( cCustomerid,mServercharge) values(@cCur,@Ser)
    fetch next from cur1 into @cCur,Serend
      

  3.   

    create trigger test on transaction 
    for
    insert
    as 
    begin
    declare @sCus varchar(20)
    declare @Ser float
    declare cur1 cursor for
    select  cCustomerid,mServercharge from inserted
    open cur1
    fetch next from cur1 into @sCur,@Ser 
    while @@fetch_status<>-1
    if exists (select count(*) from reservation  where cCustomerid=@cCur )
    update reservation set mServercharge=mServercharge+@Ser  where cCustomerid=@cCus
    else
    insert reservation( cCustomerid,mServercharge) values(@cCur,@Ser)
    fetch next from cur1 into @cCur,Ser
    close cur1
    deallocate cur1
    end
      

  4.   

    create trigger test on dbo.[transaction]
    for insert
    as 
    begin
    declare @i int
    set @i=0
    select @i=@i+a.mServercharge from [transaction] a,inserted b
    where a.cCustomerid=b.cCustomeridupdate a set mServercharge=@i+b.mServercharge 
    from [reservation] a,instered b where a.cCustomerid=b.cCustomerid
    end
      

  5.   

    TO:openVMS :我连三贴,进不了,叫楼主帮忙一下!
    还少一个END