Сегодня я пытался написать транзакцию в хранимой процедуре, которая в некоторых возвращает разные числа. Коду C# необходимо знать, что именно было ошибкой. Проблема заключается в том, что если транзакция не завершена, она вызывает одно и то же исключение.Исключение T-SQL Throw в транзакции
Я не мог исключить исключение внутри транзакции, всегда давал неправильный синтаксис. Я пытался с этим рисунком:
THROW 51000, 'The record does not exist.', 1;
Можно ли сделать что-то вроде этого:
BEGIN TRAN
TRY
IF...
THROW ERROR 4;
IF..
THROW ERROR 2;
COMPLETE TRAN;
CATCH
RETURN ERROR NUMBER;
Я просто нужно определенное число ошибки возвращается из хранимой процедуры.
Не могли бы вы привести мне пример?
P.S. Я забыл, какая версия нашего сервера sql, нет, я не в офисе. Это либо 2008 или 2012.
[Использование кода возврата] (https://technet.microsoft.com/en-us/library/ms190778 (v = sql.105) .aspx) –
[КАК: Возвращение ошибок и предупреждений от хранимой процедуры SQL Server в ADO.NET] (https://support.microsoft.com/en-us/kb/321903) –
Почему бы вам просто не использовать код возврата? Зачем бросать только, чтобы скрыть исключение? –