SET NOCOUNT (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsLager i Microsoft FabricSQL-databas i Microsoft Fabric

Styr om ett meddelande som visar antalet rader som påverkas av en Transact-SQL-sats eller lagrad projeur returneras efter resultatuppsättningen. Detta meddelande är en extra resultatuppsättning.

Transact-SQL syntaxkonventioner

Syntax

SET NOCOUNT { ON | OFF }

Anmärkningar

När SET NOCOUNT är ON, returneras inte räkningen. När SET NOCOUNT är OFF, returneras räkningen.

Funktionen @@ROWCOUNT uppdateras även när SET NOCOUNT är ON.

SET NOCOUNT ON förhindrar att meddelanden skickas DONEINPROC till klienten för varje sats i en lagrad progröp. För lagrade procedurer som innehåller flera satser som inte returnerar mycket faktisk data, eller för procedurer som innehåller Transact-SQL loopar, kan inställningen SET NOCOUNT till ON ge en betydande prestandaförbättring, eftersom nätverkstrafiken minskar avsevärt.

Inställningen som anges av SET NOCOUNT gäller vid exekverings- eller körningstid och inte vid parsetid.

För att se den aktuella inställningen för denna inställning, kör följande fråga.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';

IF ((512 & @@OPTIONS) = 512)
    SET @NOCOUNT = 'ON';

SELECT @NOCOUNT AS NOCOUNT;

Permissions

Kräver medlemskap i offentlig roll.

Examples

Följande exempel förhindrar att meddelandet om antalet berörda rader visas. I följande exempel (5 rows affected) returneras endast till klienter från det första SELECT påståendet.

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