我有一個有多個表的航班數據庫。我試圖做出觸發條件,拒絕在有維護請求的航班上插入或更新。如果要求維修飛機,則在這些時間之間不應有飛行。我得到的錯誤信息很好,但似乎我總是得到它。怎麼來的?在此先感謝,我總是感謝幫助。觸發兩張表
alter trigger DateMaintenanceTrigger
on Flight
after update, insert
as
select
m.StartDate, m.TargetEndDate, f.DepartureDateID
from
Maintenance.MaintenanceRequest as m
inner join
Flight as f on f.PlaneID = m.PlaneID
where
f.DepartureDateID < m.TargetEndDate
and f.DepartureDateID > m.StartDate
begin
raiserror ('Flight cannot take place on this maintentance date, plane not ready.', 16,1);
rollback transaction;
return
end;
go
insert into Flight
values (304, 3, 1, 200192, 1, '20160916 09:00:00 AM');
什麼是f.DepartureDateID,m.TargetEndDate和m.StartDate的價值觀,是f.DepartureDateID真的是在相同的格式別人約會嗎? – grom
他們都是日期時間類型。我試圖在2020年完成一次航班,我的所有維護請求都是在2016年,而且我仍然收到了我的觸發器錯誤消息。 – th30d0rab1e
2016-09-16 08:30:00.000開始 - 2016-09-17 09:30:00.000結束。是維護請求日期。如果我在日期中使用此插入,仍然會收到錯誤消息。 '20200916 09:00:00 AM' – th30d0rab1e