Загрузка данных


CREATE TRIGGER on_student_create ON poss
FOR INSERT AS
BEGIN
    -- Объявляем переменные для данных валидации
    DECLARE @min_gp  INT,
            @max_gp  INT,
            @min_go  INT,
            @max_go  INT;

    -- Загружаем данные валидации из таблицы в переменные
    SELECT TOP 1
        @min_gp = min_gp,
        @max_gp = max_gp,
        @min_go = min_go,
        @max_go = max_go
    FROM student_create_validation;

    IF (SELECT COUNT(*) FROM inserted) > 0
    BEGIN
        -- Используем переменные в проверке
        IF EXISTS (
            SELECT 1 FROM inserted
            WHERE gp < @min_gp OR gp > @max_gp
               OR go < @min_go OR go > @max_go
        )
        BEGIN
            SELECT 
                '«Год приема» (значения от ' + CAST(@min_gp AS VARCHAR) + ' до ' + CAST(@max_gp AS VARCHAR) + '),'
              + '«Год окончания» (значения от ' + CAST(@min_go AS VARCHAR) + ' до ' + CAST(@max_go AS VARCHAR) + ')';
            ROLLBACK TRANSACTION;
        END
    END
END;