У меня есть хранимая процедура, которая работает нормально, когда я удаляю Select 1/0 (это для проверки, если хранимая процедура ловит ошибку), но когда у меня есть Select 1/0 в хранимой процедуре, она выдает ошибку
Количество транзакций после EXECUTE указывает на несовпадающее количество операторов BEGIN и COMMIT. Предыдущий счет = 0, текущий счет = 1
Я пытался применить решение из TSQL Try / Catch в транзакции или наоборот? , но все равно я получаю ту же ошибку.
ALTER PROCEDURE [dbo].[PTA_Processing_D365]
AS
BEGIN TRY
BEGIN TRANSACTION test1
UPDATE table A
....
......
......;
INSERT INTO table A(.....)
SELECT .....
FROM table b
WHERE .....;
SELECT 1/0
ROLLBACK TRANSACTION test1
END TRY
BEGIN CATCH
INSERT INTO tableA_ErrorLog ([ExecutedDate], [ERROR_NUMBER], [ERROR_SEVERITY],
[ERROR_STATE], [ERROR_PROCEDURE], [ERROR_LINE], [ERROR_MESSAGE])
SELECT
GETDATE(), ERROR_NUMBER(), ERROR_SEVERITY(),
ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE()
END CATCH