Megosztás a következőn keresztül:


NULLSZÁMLÁLÁS (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsRaktár a Microsoft Fabric-benSQL adatbázis a Microsoft Fabric-ben

Szabályozza, hogy az eredményhalmaz után visszaküldik-e egy üzenetet, amely megmutatja, hány sort érintett egy Transact-SQL utasítás vagy tárolt eljárás. Ez az üzenet egy extra eredményhalmaz.

Transact-SQL szintaxis konvenciók

Szemantika

SET NOCOUNT { ON | OFF }

Megjegyzések

Amikor SET NOCOUNT van ON, a számlálás nem kerül vissza. Amikor SET NOCOUNT , OFFakkor a számlálás visszatér.

A @@ROWCOUNT függvény akkor is frissül, ha SET NOCOUNT .ON

SET NOCOUNT ON megakadályozza az DONEINPROC üzenetek küldését az ügyfélnek minden egyes utasításra egy tárolt eljárásban. Olyan tárolt eljárások esetén, amelyek több utasítást tartalmaznak, amelyek nem adnak sok tényleges adatot, vagy olyan eljárásoknál, amelyek Transact-SQL hurkot tartalmaznak, a beállítás SET NOCOUNTON jelentős teljesítménynövekedést eredményezhet, mivel a hálózati forgalom jelentősen csökken.

Az általa SET NOCOUNT megadott beállítás végrehajtáskor vagy futásidőben érvényben van, nem parze-időben.

A jelenlegi beállítás megtekintéséhez futtasd le a következő lekérdezést.

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

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

SELECT @NOCOUNT AS NOCOUNT;

Permissions

A nyilvános szerepkör tagságát igényli.

Példák

A következő példa megakadályozza, hogy az érintett sorok számáról szóló üzenet megjelenjen. A következő példában (5 rows affected) csak az első SELECT állításból érkezik vissza az ügyfeleknek.

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