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;