다음을 통해 공유


SET NOCOUNT(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Warehouse

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

Transact-SQL 구문 표기 규칙

Syntax

SET NOCOUNT { ON | OFF }

참고 항목

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

설명

ON경우 SET NOCOUNT 개수가 반환되지 않습니다. 이 경우 SET NOCOUNT OFF개수가 반환됩니다.

이 함수는 @@ROWCOUNT 다음과 같은 경우에도 SET NOCOUNT 업데이트됩니다 ON.

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