我有一个可以从事务中调用的存储过程。当出现异常时,我想回滚事务(顶级事务)。我想使用这样的东西:
...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 without BEGIN TRANSACTION。有没有办法正确地写这个?