Как создать триггер для предотвращения перекрытия - PullRequest
0 голосов
/ 06 мая 2020

У меня есть таблица под названием «Спорт», в которой есть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...