我有一个可以从事务中调用的存储过程。当有异常时我想回滚事务(顶级事务)。我想用这样的东西:
...procedure definition...
BEGIN
BEGIN TRY
--work&logic
END TRY
BEGIN CATCH
-- An error occurred!
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
END
这样做的结果是,SQL Code Guard为此报告了warning EI020 - 没有BEGIN TRANSACTION的ROLLBACK TRANSACTION。有没有办法正确地写这个?