#sql-server #vb.net
#sql-server #vb.net
Вопрос:
Я хочу запускать сообщения об ошибках SQL Server при выполнении хранимой процедуры.
Пример
Сообщение 547, уровень 16, состояние 0, строка 1
Оператор DELETE конфликтовал со ссылочным ограничением «FK_TableX_$RateCard_Box». Конфликт произошел в базе данных «TestDB», таблица «dbo.TableX».
Я хочу знать, запускается ли эта ошибка в процедуре, как я могу отправить пользователю значимое сообщение.
Я выполняю хранимую процедуру SQL Server из VB.net .
Комментарии:
1. вы можете использовать try и catch в своей хранимой процедуре и можете вызвать пользовательскую ошибку / сообщение в соответствии с вашими требованиями learn.microsoft.com/en-us/sql/t-sql/language-elements /…
2. Мукеш Арора — Большое вам спасибо.
Ответ №1:
Можно использовать TRY CATCH
инструкции и выбрасывать Message
, Severity
и State
в CATCH
инструкции:
BEGIN TRY
-- Your code here...
END TRY
BEGIN CATCH
DECLARE @Message varchar(MAX) = ERROR_MESSAGE(),
@Severity int = ERROR_SEVERITY(),
@State smallint = ERROR_STATE()
RAISERROR(@Message, @Severity, @State)
END CATCH