я хочу создать хранимую процедуру, которая выполняет оператор вставки. Существует вероятность сбоя выполнения из-за ограничения проверки для таблицы Employee. В этом случае я хочу обработать пользовательскую ошибку.Очевидно, что следующая процедура не работает должным образом, потому что она всегда вызывает мою ошибку, но не только при неудачной вставке.
EXEC sp_addmessage 50001, 16, N'Title must be one of the following - Captain,Engineer,Flight-attendant,Purser,First-officer';
CREATE PROCEDURE InsertIntoEmployee
@firstName nvarchar(30),
@familyName nvarchar(30),
@title nvarchar(50),
@address nvarchar(50),
@chiefID int ,
@salary money ,
@FK_IDCrew int,
@FK_DepartmentID int
AS
BEGIN
declare @err_num int;
declare @err_sev int;
declare @err_msg int;
begin try
insert into Employee(firstName, familyName, title, address, chiefID, salary, FK_IDCrew,
FK_DepartmentID)
values(@firstName, @familyName, @title, @address, @chiefID, @salary, @FK_IDCrew,
@FK_DepartmentID);
raiserror(50001,16,1);
END try
begin catch
set @err_num=ERROR_NUMBER();
set @err_sev=ERROR_SEVERITY();
set @err_msg=ERROR_STATE();
raiserror(@err_num,@err_sev,@err_msg);
end catch
end
GO