SET NOCOUNT (Transact-SQL)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
хранилище Azure Synapse Analytics
в Microsoft Fabric
Определяет, возвращается ли сообщение, отображающее количество строк, затронутых инструкцией Transact-SQL или хранимой процедурой после результирующий набор. Это сообщение является дополнительным результирующий набор.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SET NOCOUNT { ON | OFF }
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Замечания
В противном случае SET NOCOUNT
ON
счетчик не возвращается. В SET NOCOUNT
противном случае OFF
возвращается число.
Функция @@ROWCOUNT
обновляется даже в том ON
случаеSET NOCOUNT
.
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;
Разрешения
Необходимо быть членом роли 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