我有下表:
事件(IDEvent,IDBracelet,IDSensor,DateTime,TypeofEvent); 传感器(IDSensor,IDArea); Days_Areas(IDFestivalDay,IDBracelet,IDArea)。
当手镯未经许可进入某个区域时,我一直在尝试对事件进行更新。 到目前为止,我已经完成了以下操作,它适用于每种情况,但当我同时插入正确和错误事件时除外。
update Events
set TypeofEvent='red'
from inserted i,Events e
where i.IDEvent=e.IDEvent and exits (select * from inserted i join Days_Areas a on i.IDBracelet=a.IDBracelet join
Sensor s on s.IDSensor=i.IDSensor where a.IDArea <> s.IDArea);
此触发器是插入后更新的。 有谁能告诉我问题出在哪里?
编辑:关于此触发器,我还有另一个问题。 当我尝试同时插入一个事件时,同一条手镯经过一个其允许的传感器穿过另一个手镯,经过另一个未经允许的传感器穿过,正确的事件仍然变为红色。
我该如何解决?
答案 0 :(得分:1)
尝试一下:
update Events
set TypeofEvent='red'
from inserted i
INNER JOIN Events e
ON i.IDEvent=e.IDEvent
INNER join Days_Areas a
on i.IDBracelet=a.IDBracelet
INNER join Sensor s
on s.IDSensor=i.IDSensor
where a.IDArea <> s.IDArea