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.进入时间)
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.进入时间)
不是这样。 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中的一条的数据
--以后的数据 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.进入时间)
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.进入时间)
After Delete
As
Declare @Ctime Int
Update A Set a.人数 = a.人数 - Isnull(b.人数) From Deleted b
Where DatePart(Hour,a.进入时间) = DatePart(Hour,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.进入时间)
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中的一条的数据
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.进入时间)
是不是这个人进来就不走了?????例如:我要删除B表中12:01的那笔数据,那就需要将A表中12:00以后的数据 - 2。
你的意思是删除B表中12:01的那笔数据,那就需要将A表中12:00以后的数据 - 2。
包含13:00 和14:00等等,是吗?
如果同时删除多条的话
那么人数只减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.进入时间)
会触发多次!
是一个update语句执行多条!
我试过只执行一次!
不是清零!,而是另外产生的表,这个表只存放要删除的数据。