分别建立触发器??怎么判断A、B都插入了数据?
其实我要做的很简单:
1.在A、B表插入完成后分别读出插入的记录
2.取出C表前一天记录
3.利用上述取出来的数据推算出新的数据
4.将该数据插入C表

解决方案 »

  1.   

    大概写法:
    CREATE TRIGGER trigger_insert 
    on A 
    FOR INSERT AS if exists (
       select 1 from B
       where 日期>=convert(varchar(10,getdate()) and 日期<dateadd(day,1,convert(varchar(10,getdate())) 
       )
      insert c(日期,数据) select getdate(),计算=...
         from inserted i,b
         where b.日期>=convert(varchar(10,getdate()) and b.日期<dateadd(day,1,convert(varchar(10,getdate())) 
         
    goCREATE TRIGGER trigger_insert 
    on B
    FOR INSERT AS if exists (
       select 1 from A
       where 日期>=convert(varchar(10,getdate()) and 日期<dateadd(day,1,convert(varchar(10,getdate())) 
       )
      insert c(日期,数据) select getdate(),计算=...
         from inserted i,A
         where A.日期>=convert(varchar(10,getdate()) and A.日期<dateadd(day,1,convert(varchar(10,getdate())) 
         
    go
      

  2.   

    修改一下CREATE TRIGGER trigger_insert 
    on A 
    FOR INSERT AS if exists (
       select 1 from B
       where 日期>=convert(varchar(10,getdate(),120) and 日期<dateadd(day,1,convert(varchar(10,getdate(),120)) 
       )
      insert c(日期,数据) select getdate(),计算=...
         from inserted i,b
         where b.日期>=convert(varchar(10,getdate(),120) and b.日期<dateadd(day,1,convert(varchar(10,getdate(),120)) 
         
    goCREATE TRIGGER trigger_insert 
    on B
    FOR INSERT AS if exists (
       select 1 from A
       where 日期>=convert(varchar(10,getdate(),120) and 日期<dateadd(day,1,convert(varchar(10,getdate(),120)) 
       )
      insert c(日期,数据) select getdate(),计算=...
         from inserted i,A
         where A.日期>=convert(varchar(10,getdate(),120) and A.日期<dateadd(day,1,convert(varchar(10,getdate(),120)) 
         
    go
      

  3.   


    如果你不能通过什么字段知道A,B都插入了数据,那可以在前台程序端写代码,在向A,B插入数据的时候,将C表记录取出来,处理后再更新到C表