我有一个长时间运行的SP (它可以运行几分钟),它基本上可以对事务中的各个表执行一些清理操作。我试图确定以某种方式将人类可读的状态信息传递给调用方的最佳方式,说明SP当前正在执行的进程的哪个步骤。
因为整个SP运行在单个事务中,所以我不能将此信息写回一个status表,然后从另一个线程读取它,除非我使用NOLOCK来读取它,我认为这是最后的方法,因为:
是否有任何方法在事务中发出单个命令(或执行第二个SP),并告诉指定该特定命令不应该是事务的一部分?或者,对于ADO.NET来说,还有其他的方法来洞察这个长期运行的SP,看看它目前正在做什么吗?
发布于 2011-02-07 21:13:07
您可以在the中打印消息,并通过“SqlConnection”事件在ADO.NET中将它们传递给您的InfoMessage。看见
http://msdn.microsoft.com/en-us/library/a0hee08w.aspx
了解详细信息。
https://stackoverflow.com/questions/4926567
复制相似问题