SQL Code Guard и откат вложенных транзакций?
У меня есть хранимая процедура, которая может быть вызвана из транзакции. Когда есть исключение, я хочу откатить транзакцию (транзакция верхнего уровня). Я хотел бы использовать что-то вроде этого:
...procedure definition...
BEGIN
BEGIN TRY
--work&logic
END TRY
BEGIN CATCH
-- An error occurred!
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
END
Суть в том, что SQL Code Guard сообщает об этом предупреждение EI020 - ROLLBACK TRANSACTION без BEGIN TRANSACTION. Есть ли способ написать это правильно?