sp_reset_connection 的作用
当您使用连接池连接到 SQL Server 时,SQL Server 将调用 sp_reset_connection 存储过程来重用之前池中的连接。
(在.NET中是由.Net SqlClient Data Provider调用)
使用 sp_reset_connection 存储过程可确保连接选项被重置,
使 客户端应用程序 重用 在以前的语句中所创建的 已没有持续 的 连接。
然而,在 Microsoft SQL Server 2000 中,
sp_reset_connection 存储过程可能 无法重置 设置正确的行数(@@ROWCOUNT)。
如果执行删除或更新的语句执行后 sp_reset_connection 存储过程调用,SQL Server 尊重旧行值(换句话说,旧的行数设置仍然存在)。
在这种情况下,DELETE或UPDATE语句只更新或删除以前的连接设置中指定的行数。
SELECT 语句中,不会发生此问题。
如果您运行选择后您调用 sp_reset_connection 存储过程、SQL Server 忽略中以前的连接设置的 @@ROWCOUNT 和 SELECT 语句返回预期的行数。
Fix: SQL Server 2000的情况下请更新相关SP补丁包即可.
英文原版:http://support.microsoft.com/kb/310617/
--------------
在这里我知道了这个存储过程是为了重用池中的连接所用的.so,
EF 4.1中内部经常提交的 exec sp_reset_connection 的用途原来是为了重用池中的连接