Sdílet prostřednictvím


NASTAVTE NEPOČET (Transact-SQL)

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSklad v Microsoft FabricSQL databáze v Microsoft Fabric

Ovládá, zda je po výsledné sadě vrácena zpráva ukazující počet řádků ovlivněných Transact-SQL příkazem nebo uloženou procedurou. Tato zpráva je další množina výsledků.

Transact-SQL konvence syntaxe

Syntaxe

SET NOCOUNT { ON | OFF }

Poznámky

Když SET NOCOUNT je ON, počet se nevrátí. Když SET NOCOUNT je OFF, počet se vrátí.

Funkce @@ROWCOUNT se aktualizuje i tehdy, když SET NOCOUNT je .ON

SET NOCOUNT ON zabraňuje odesílání DONEINPROC zpráv klientovi pro každý příkaz v uložené procedurě. U uložených procedur, které obsahují několik příkazů, jež nevrací mnoho skutečných dat, nebo u procedur obsahujících Transact-SQL smyček, může nastavení SET NOCOUNT na ON výrazně zvýšit výkon, protože síťový provoz je výrazně snížen.

Nastavení dané v platí SET NOCOUNT při spuštění nebo běhu a nikoli při parse.

Pro zobrazení aktuálního nastavení tohoto nastavení spusťte následující dotaz.

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

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

SELECT @NOCOUNT AS NOCOUNT;

Povolení

Vyžaduje členství ve veřejné roli .

Examples

Následující příklad zabraňuje zobrazení zprávy o počtu dotčených řádků. V následujícím příkladu je vrácena (5 rows affected) klientům pouze z prvního SELECT příkazu.

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