Create Trigger tr_Delete On B
After Delete
As
...............

解决方案 »

  1.   

    Create Trigger tr_Delete On B
    After Delete
    As
    Declare @Ctime Int
    Update A Set a.人数 = a.人数 - Isnull(b.人数) From Deleted b 
    Where DatePart(Hour,a.进入时间) = DatePart(Hour,b.进入时间)
      

  2.   

    Create Trigger tr_Delete On B
    After Delete
    As
    --如果时间是varchar,char等类型
    Update A Set a.人数 = a.人数 - Isnull(b.人数) From Deleted b 
    Where Convert(char(2),a.进入时间) = Convert(char(2),b.进入时间)
      

  3.   

    不是这样。
    Create Trigger tr_Delete On B
    After Delete
    As
    --如果时间是varchar,char等类型
    Update A Set a.人数 = a.人数 - Isnull(b.人数) From Deleted b 
    Where Convert(char(2),a.时间)>= Convert(char(2),b.进入时间)
    如果同时删除多条的话
    那么人数只减b中的一条的数据
      

  4.   

    --以后的数据
    Create Trigger tr_Delete On B
    After Delete
    As
    Declare @Ctime Int
    Update A Set a.人数 = a.人数 - Isnull(b.人数) From Deleted b 
    Where DatePart(Hour,a.进入时间) = DatePart(Hour,b.进入时间)
      

  5.   


    是不是这个人进来就不走了?????例如:我要删除B表中12:01的那笔数据,那就需要将A表中12:00以后的数据 - 2。
    你的意思是删除B表中12:01的那笔数据,那就需要将A表中12:00以后的数据 - 2。
    包含13:00 和14:00等等,是吗?
      

  6.   

    Frewin(Frewin):你的方法
    如果同时删除多条的话
    那么人数只减b中的一条的数据
      

  7.   

    Create Trigger tr_1 On B
    for Delete
    As
    Declare @Ctime Int
    Update A Set A.人数 = A.人数 - Isnull(B.人数,0) From Deleted B 
    Where DatePart(Hour,A.进入时间) >= DatePart(Hour,B.进入时间)
      

  8.   

    我知道,我其实不是delete,是UPDATE,这样不会触发多次把
      

  9.   

    b表中有个字段是isDeleted,是否删除标记,逻辑删除,不是物理删除
      

  10.   

    To: zhengkaining(领主)
    会触发多次!
      

  11.   

    我怎么不会触发多次!!!
    是一个update语句执行多条!
    我试过只执行一次!
      

  12.   

    不讨论触发器问题,我如果不用触发器,只用一条SQL语句(假设B的数据都是要逻辑删除的)
    不是清零!,而是另外产生的表,这个表只存放要删除的数据。
      

  13.   

    你没明白我的意思,我又写了一条,你看看,帮我想想,这个SQL语句怎么写,谢谢