我的数据库中有一个表,该表实际上可以用作记录目标。我在SQL代码中将其与以下代码模式一起使用:
BEGIN TRY
...
END TRY
BEGIN CATCH
INSERT INTO [dbo.errors] (...)
VALUES ( ERROR_PROCEDURE(), ERROR_NUMBER(), ERROR_MESSAGE(), ... )
END CATCH
长话短说,其中一些代码必须与事务一起执行。我正在确定没有任何内容写入日志,因为事务回滚也会回滚错误日志条目。有什么可以做的吗?
编辑:我确实知道如何通过在插入日志之前执行回滚/提交来解决。我的问题是,是否存在插入数据的已知方法,以使其不受正在进行的事务的影响。例如:如果我使用单独的连接将其插入,则可以完成此操作。只有我想找到在单个SQL语句中执行此操作的方法
EDIT2:澄清:这是关于Microsoft SQL
最佳答案
如果您真的想避免使用事务,可以尝试使用here's一种技术。这是局部变量的变体。
关于sql - 插入数据忽略当前事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799845/