मुझे लगता है कि यह स्थिति अधिक उपयुक्त है:
IF EXISTS ( SELECT * --No need to choose columns in an EXISTS
FROM tbl_Example t1
inner join
tbl_Example t2
on
t1.StockCode = t2.StockCode and
t1.Type = t2.Type and
t1.ValidFrom < t2.ValidTo and
t2.ValidFrom < t1.ValidTo and
t1.ID <> t2.ID
where
t1.ID in (select ID from inserted))
BEGIN
RAISERROR ('Date range cant overlap existing date ranges for given StockCode and Type', 16, 1)
ROLLBACK --We're in a trigger, we *must* be in a transaction
END
यह ओवरलैप का पता लगाने के लिए सरल स्थिति का उपयोग करता है - यदि दोनों पंक्तियाँ दूसरी पंक्ति समाप्त होने से पहले शुरू होती हैं तो एक ओवरलैप मौजूद होता है।