У меня есть таблица под названием «Спорт», в которой есть 4 вида спорта (футбол, баскетбол, бейсбол, гольф). Футбол и баскетбол имеют перекрывающиеся сезоны. Итак, я хочу создать триггер, который проверяет, назначен ли спортсмену футбол, его нельзя назначить баскетболу, но можно назначить гольфу или бейсболу.
Вот триггер, который я создал, но проблема в том, что это мешает мне назначить спортсмена для баскетбола, даже если он не назначен на футбол. Кроме того, другая проблема заключается в том, что он показывает результат каждый раз, когда я запускаю команду INSERT для таблицы «Players»
CREATE TRIGGER CheckOverlappingSeasons
ON Players AFTER INSERT, UPDATE
AS
DECLARE
@SportName AS VARCHAR(25),
@StuID AS INT
SELECT @SportName = SportName
FROM inserted
SELECT StudentID, SportName
FROM Players
WHERE SportName = 'Soccer'
IF @SportName = 'BasketBall'
BEGIN ROLLBACK
PRINT 'No athlete can be assigned to two sports that have overlapping seasons.'
END