SET NOCOUNT(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics Warehouse

Transact-SQL 문 또는 저장 프로시저의 영향을 받는 행 수를 표시하는 메시지가 결과 집합 후에 반환되는지 여부를 제어합니다. 이 메시지는 추가 결과 집합입니다.

Transact-SQL 구문 표기 규칙

Syntax

SET NOCOUNT { ON | OFF }

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

설명

SET NOCOUNT가 ON이면 개수가 반환되지 않습니다. SET NOCOUNT 옵션을 OFF로 설정하면 이 수가 반환됩니다.

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;

사용 권한

public 역할의 멤버 자격이 필요합니다.

예제

다음 예에서는 영향을 받은 행 수에 대한 메시지가 표시되지 않도록 지정합니다. 다음 예제에서 "(영향을 받는 행 5개)"는 첫 번째 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

참고 항목