如何从catch块记录错误,同时回滚事务?

时间:2013-01-10 22:51:53

标签: sql tsql transactions try-catch

BEGIN TRANSACTION
    BEGIN TRY
        --DO_ACTION
        --COMMIT_TRANSACTION
    END TRY
    BEGIN CATCH
        --LOG_ERROR (e.g. INSERT INTO ErrorTable (ERROR_MESSAGE(), ...))
        --ROLLBACK
    END CATCH

我正在尝试执行以下操作,但是ROLLBACK命令正在回滚我的错误记录,因此“ErrorTable”中没有任何内容。

在这种情况下,我该如何做我想做的事?

1 个答案:

答案 0 :(得分:1)

您要登录ErrorTable的内容?如果是回滚后尚未提供的数据,则可以将其保存在表变量中,然后在回滚后插入ErrorTable。表变量不参与事务。