首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将状态信息从存储过程传递给事务中的调用方

将状态信息从存储过程传递给事务中的调用方
EN

Stack Overflow用户
提问于 2011-02-07 21:04:35
回答 2查看 300关注 0票数 1

我有一个长时间运行的SP (它可以运行几分钟),它基本上可以对事务中的各个表执行一些清理操作。我试图确定以某种方式将人类可读的状态信息传递给调用方的最佳方式,说明SP当前正在执行的进程的哪个步骤。

因为整个SP运行在单个事务中,所以我不能将此信息写回一个status表,然后从另一个线程读取它,除非我使用NOLOCK来读取它,我认为这是最后的方法,因为:

  • NOLOCK可能导致其他数据不一致的问题;以及
  • 这让任何想要读取使用NOLOCK所需的status表的人承担责任,因为表或行可能会被锁定很长一段时间。

是否有任何方法在事务中发出单个命令(或执行第二个SP),并告诉指定该特定命令不应该是事务的一部分?或者,对于ADO.NET来说,还有其他的方法来洞察这个长期运行的SP,看看它目前正在做什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-07 21:13:07

您可以在the中打印消息,并通过“SqlConnection”事件在ADO.NET中将它们传递给您的InfoMessage。看见

http://msdn.microsoft.com/en-us/library/a0hee08w.aspx

了解详细信息。

票数 3
EN

Stack Overflow用户

发布于 2011-02-07 21:09:27

您可以尝试在过程中使用雷瑟 (使用10或更低的严重性)返回信息性消息。

示例:

代码语言:javascript
运行
复制
RAISERROR(N'Step 5 completed.', 10, 1) WITH NOWAIT;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4926567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档