SET NOCOUNT (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Azure Synapse AnalyticsWarehouse в Microsoft Fabric

Определяет, возвращается ли сообщение, отображающее количество строк, затронутых инструкцией Transact-SQL или хранимой процедурой после результирующий набор. Это сообщение является дополнительным результирующий набор.

Соглашения о синтаксисе Transact-SQL

Синтаксис

SET NOCOUNT { ON | OFF }

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Замечания

Если параметр SET NOCOUNT имеет значение ON, счетчик не возвращается. Если значение инструкции SET NOCOUNT равно OFF, то количество строк возвращается.

Функция @@ROWCOUNT обновляется, даже если параметр SET NOCOUNT имеет значение ON.

Инструкция SET NOCOUNT ON запрещает всем инструкциям хранимой процедуры отправлять клиенту сообщения DONEINPROC. Для хранимых процедур, содержащих несколько инструкций, которые не возвращают много фактических данных или для процедур, содержащих циклы Transact-SQL, параметр SET NOCOUNT to ON может обеспечить значительный рост производительности, так как сетевой трафик значительно снижается.

Инструкция SET NOCOUNT устанавливается во время выполнения, а не на этапе синтаксического анализа.

Чтобы просмотреть текущее значение для этого параметра, выполните следующий запрос.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';
IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 'ON';
SELECT @NOCOUNT AS NOCOUNT;

Разрешения

Необходимо быть членом роли public.

Примеры

В следующем примере запрещается вывод сообщения о количестве измененных строк. В следующем примере сообщение "(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

См. также