RAISERROR


Главная - Примеры разработки 1С - RAISERROR

RAISERROR ({msg_id | msg_str}, severity, state
[, argument1 [, argument2]] )
[WITH LOG]
Возвращает пользовательское сообщение об ошибке и устанавливает систменый флаг, указывающий на то, что произошла ошибка. severity определяет важность ошибки, которые можно посмотреть в System Administration Companion. Только системный администратор может использовать RAISERROR с severity от 19 до 25
Пример
REATE TRIGGER employee_insupd
ON employee
FOR INSERT, UPDATE
AS
/* Get the range of level for this job type from the jobs table. */
DECLARE @min_lvl tinyint,
@max_lvl tinyint,
@emp_lvl tinyint,
@job_id smallint
SELECT @min_lvl = min_lvl,
@max_lvl = max_lvl,
@emp_lvl = i.job_lvl,
@job_id = i.job_id
FROM employee e, jobs j, inserted i
WHERE e.emp_id = i.emp_id AND i.job_id = j.job_id
IF (@job_id = 1) and (@emp_lvl <> 10)
BEGIN
RAISERROR ( Job id 1 expects the default level of 10. ,16,-1)
ROLLBACK TRANSACTION
END
ELSE
IF NOT (@emp_lvl BETWEEN @min_lvl AND @max_lvl)
BEGIN
RAISERROR ( The level for job_id:%d should be between %d and %d. ,
16, -1, @job_id, @min_lvl, @max_lvl)
ROLLBACK TRANSACTION
END