我们引入了一个新的数据访问框架来调用 SQL 存储过程。在调用返回记录集的存储过程时,我们遇到了该存储过程还执行某种更新(插入/更新/删除)的问题:
无法更改以 Command 对象为源的 Recordset 对象的 ActiveConnection 属性。
解决方案是将“SET NOCOUNT ON”添加到存储过程的顶部。这工作得很好,当然,它也有一个吹捧的性能增强。
我们建议开发人员在编写代码来调用现有存储过程时,还必须重构存储过程本身以包含SET NOCOUNT ON
.
但是,这让我想知道,对所有存储过程执行全面更新以包含SET NOCOUNT ON
. 在什么情况下这会破坏 SP 的功能?(假设 @@ROWCOUNT 函数即使在 SET NOCOUNT 为 ON 时也会更新)
一如既往的帮助,非常感谢。