SET NOCOUNT (Transact-SQL)SET NOCOUNT (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) нетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Запрещает вывод количества строк, на которые влияет инструкция Transact-SQLTransact-SQL или хранимая процедура, в составе результирующего набора.Stops the message that shows the count of the number of rows affected by a Transact-SQLTransact-SQL statement or stored procedure from being returned as part of the result set.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
SET NOCOUNT { ON | OFF }   

ПримечанияRemarks

Если значение инструкции SET NOCOUNT равно ON, то количество строк не возвращается.When SET NOCOUNT is ON, the count is not returned. Если значение инструкции SET NOCOUNT равно OFF, то количество строк возвращается.When SET NOCOUNT is OFF, the count is returned.

Функция @@ROWCOUNT обновляется, даже если значение SET NOCOUNT равно ON.The @@ROWCOUNT function is updated even when SET NOCOUNT is ON.

Инструкция SET NOCOUNT ON запрещает всем инструкциям хранимой процедуры отправлять клиенту сообщения DONE_IN_PROC.SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the client for each statement in a stored procedure. Для хранимых процедур с несколькими инструкциями, не возвращающих большое количество фактических данных, или для процедур, содержащих циклы Transact-SQLTransact-SQL, установка в инструкции SET NOCOUNT параметра ON может значительно повысить производительность за счет существенного снижения объема сетевого трафика.For stored procedures that contain several statements that do not return much actual data, or for procedures that contain Transact-SQLTransact-SQL loops, setting SET NOCOUNT to ON can provide a significant performance boost, because network traffic is greatly reduced.

Инструкция SET NOCOUNT устанавливается во время выполнения, а не на этапе синтаксического анализа.The setting specified by SET NOCOUNT is in effect at execute or run time and not at parse time.

Чтобы просмотреть текущее значение для этого параметра, выполните следующий запрос.To view the current setting for this setting, run the following query.

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

РазрешенияPermissions

Необходимо быть членом роли public.Requires membership in the public role.

ПримерыExamples

В следующем примере запрещается вывод сообщения о количестве измененных строк.The following example prevents the message about the number of rows affected from being displayed.

USE AdventureWorks2012;  
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  

См. такжеSee Also

@@ROWCOUNT (Transact-SQL) @@ROWCOUNT (Transact-SQL)
Инструкции SET (Transact-SQL)SET Statements (Transact-SQL)