Я изучаю триггер и у меня возник вопрос.
Я создаю триггер для изменения комплекса времени.
В таблице данных weeklymeeting
|section_id| meeting type| days| timestart|timeend|class_id|
| 13 | Lecture | 5 | 01:00:00 |02:00:00|12 |
timestart
и timeend
имеют тип данных TIME
Я создаю триггер, который проверяет комплекс времени
, например
, если пользователь использует запроскак
INSERT INTO DBO.WeeklyMeetings VALUES (35, 1,1 ,'11:40:00','11:42:00', 42)
он должен вставить данные
однако
INSERT INTO CSE132B.DBO.WeeklyMeetings VALUES (35, 1, 1, '12:30:00','01:30:00', 42)
тогда он должен вернуть сообщение об ошибке, потому что это комплекс времени
Поэтому ясоздал триггер для проверки временного комплекса .. но такой как
ALTER TRIGGER [dbo].[check_section_time_complex] ON [dbo].[WeeklyMeetings]
FOR INSERT AS
IF EXISTS(select * from inserted as i INNER JOIN dbo.WeeklyMeetings as m ON (i.timestart BETWEEN m.timestart and m.timeend)
OR( i.timeend BETWEEN m.timestart and m.timeend ))
begin
RAISERROR ('Can not update data because section time is complexing with other section!!', 16,1);
rollback tran
end
однако он не работает на самом деле ... я не совсем уверен, что причина ....
делаеткто-нибудь знает проблемы в этом триггере?
спасибо