我可以运行一些SQL在单独的事务,事务过程中

问题描述 投票:1回答:1

我想我们的标准错误处理一起创建存储过程的一些标准的日志记录。我想在存储过程的开始调用存储过程登录到,它已经开始表,并在最后调用存储过程来记录它已成功完成。我也想从错误处理程序调用存储过程登录失败和错误消息/数字。

存储过程可以有它自己的事务,或它的调用堆栈可能已经开始交易,或有可能没有任何事务打开。我不希望我的电话到日志程序回滚可言,无论在主交易发生了什么。即日志记录存储过程的处理需要从主处理的完全分开的。

是否有可能执行一些SQL,就好像它在事务处理过程是在一个单独的会话?什么是实现这一目标的最简单的方法?

顺便说一句,我不能使用xp_cmdshell的,不然我外壳调用SQLCMD。

谢谢,

标记

sql-server error-handling transactional error-logging
1个回答
1
投票

你所描述的嵌套事务。然而,嵌套事务是不是真实的。 https://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-2630-nested-transactions-are-real/你必须做你的记录在另一种情况下。既然你是在存储过程中,你将不得不使用动态SQL日志记录代码这个工作。

© www.soinside.com 2019 - 2024. All rights reserved.