SQL Server继续计算行数

Sle*_*idi 3 sql sql-server sql-server-2008

我已禁用行计数,SET NOCOUNT ON但似乎sqlserver仍在计算行数.

USE Northwind
SET  NOCOUNT ON;
SELECT * FROM Products p
SELECT @@ROWCOUNT AS 'RowCount';
Run Code Online (Sandbox Code Playgroud)

对于行计数,查询返回77,为什么?

Div*_*com 6

设置NOCOUNT ON;

防止在执行存储过程时返回rowcount.它对@@ rowcount没有影响.

有关具体信息,请参阅http://msdn.microsoft.com/en-us/library/ms189837.aspx

即使SET NOCOUNT为ON,@@ ROWCOUNT函数也会更新.

SET NOCOUNT ON可防止为存储过程中的每个语句向客户端发送DONE_IN_PROC消息.对于包含多个不返回实际数据的语句的存储过程,或包含Transact-SQL循环的过程,将SET NOCOUNT设置为ON可以显着提高性能,因为网络流量大大减少.