SET NOCOUNT (Transact-SQL)
适用于:sql Server Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric 中的 Azure Synapse Analytics Warehouse
控制是否在结果集之后返回消息,该消息显示受 Transact-SQL 语句或存储过程影响的行数。 此消息是额外的结果集。
语法
SET NOCOUNT { ON | OFF }
备注
如果 SET NOCOUNT
为 ON
,则不返回计数。 OFF
何时SET NOCOUNT
返回计数。
即使SET NOCOUNT
为 ON
.,函数@@ROWCOUNT
也会更新。
SET NOCOUNT ON
防止向客户端发送 DONEINPROC
存储过程中每个语句的消息。 对于包含不返回太多实际数据的多个语句的存储过程,或者对于包含 Transact-SQL 循环的过程,设置SET NOCOUNT
ON
可提供显著的性能提升,因为网络流量会大大减少。
指定的 SET NOCOUNT
设置在执行或运行时生效,而不是在分析时生效。
要查看此设置的当前设置,请运行以下查询。
DECLARE @NOCOUNT VARCHAR(3) = 'OFF';
IF ((512 & @@OPTIONS) = 512)
SET @NOCOUNT = 'ON';
SELECT @NOCOUNT AS NOCOUNT;
权限
要求 公共 角色具有成员身份。
示例
以下示例将禁止显示受影响的行数的消息。 在以下示例中, (5 rows affected)
仅从第一个 SELECT
语句返回给客户端。
USE AdventureWorks2022;
GO
SET NOCOUNT OFF;
GO
-- Display the count message.
SELECT TOP (5) LastName
FROM Person.Person
WHERE LastName LIKE 'A%';
GO
-- SET NOCOUNT to ON to no longer display the count message.
SET NOCOUNT ON;
GO
SELECT TOP (5) LastName
FROM Person.Person
WHERE LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to OFF
SET NOCOUNT OFF;
GO