DGKumar Ответов: 1

Как найти исключение SQL в хранимой процедуре.


How to find the sql exception in stored procedure.


Что я уже пробовал:

Как найти исключение sql в хранимой процедуре. попробуйте поймать правильный подход или любые другие вещи есть, чтобы узнать исключения

Maciej Los

Что СУРБД?

Sergey Alexandrovich Kryukov

Что значит "найти исключение"? Это не то, как работает обработка исключений. Во всяком случае, вопрос неясен.
—СА

1 Ответов

Рейтинг:
1

Sergey Alexandrovich Kryukov

Пожалуйста, смотрите мой комментарий к этому вопросу. Я не могу понять, что вы имеете в виду, и не уверен, что вы понимаете, чего хотите достичь, извините.

Во всяком случае, обработка исключений-это функция Transact-SQL, которая является расширением SQL, поэтому вы можете начать здесь:
ПРОБОВАТЬ...CATCH (Transact-SQL),
Transact-SQL.

Однако, скорее всего, вам нужно понять, как работает обработка исключений, что не является тривиальной темой, несмотря на то, что почти все используют обработку исключений. Я попытался объяснить только общую идею в своих прошлых ответах:
Не исключение в C# конструктор вызывает абонента назначение на провал?,
где хранились исключения .net в операционной системе.

Тема довольно фундаментальная и серьезная, требует настоящего образования; мой ответ можно рассматривать в лучшем случае как намек.

—СА


DGKumar

Я столкнулся с этим вопросом в одном интервью.
как вы можете знать, что хранимая процедура получает какую-либо ошибку.
Каков ваш подход к выяснению того, где именно произошла ошибка в storedprocedure?

Sergey Alexandrovich Kryukov

Посмотрите на информацию об исключениях...

Посмотрите на эту страницу еще раз: https://msdn.microsoft.com/en-us/library/ms175976.aspx.
Обратите внимание на:

Получение Информации Об Ошибках
...
ERROR_NUMBER () возвращает номер ошибки.
ERROR_SEVERITY () возвращает серьезность.
ERROR_STATE () возвращает номер состояния ошибки.
ERROR_PROCEDURE () возвращает имя хранимой процедуры или триггера, в котором произошла ошибка.
ERROR_LINE () возвращает номер строки внутри процедуры, вызвавшей ошибку.
ERROR_MESSAGE () возвращает полный текст сообщения об ошибке. Текст содержит значения, предоставленные для любых заменяемых параметров, таких как длина, имена объектов или время.
...

Разве это не означает, что я уже ответил на ваш вопрос, потому что я ссылался на эту страницу в своем ответе в первую очередь?
Теперь вы примете формальный ответ?

—СА