Bagikan melalui


SET NOCOUNT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsWarehouse di Microsoft Fabric

Mengontrol apakah pesan yang memperlihatkan jumlah baris yang terpengaruh oleh pernyataan Transact-SQL atau prosedur tersimpan dikembalikan setelah hasil ditetapkan. Pesan ini adalah kumpulan hasil tambahan.

Konvensi sintaks transact-SQL

Sintaksis

SET NOCOUNT { ON | OFF }

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Keterangan

Ketika SET NOCOUNT adalah ON, jumlah tidak dikembalikan. Ketika SET NOCOUNT adalah OFF, jumlah dikembalikan.

Fungsi ini @@ROWCOUNT diperbarui bahkan ketika SET NOCOUNT adalah ON.

SET NOCOUNT ON mencegah pengiriman DONEINPROC pesan ke klien untuk setiap pernyataan dalam prosedur tersimpan. Untuk prosedur tersimpan yang berisi beberapa pernyataan yang tidak mengembalikan banyak data aktual, atau untuk prosedur yang berisi perulangan Transact-SQL, pengaturan SET NOCOUNT untuk ON dapat memberikan peningkatan performa yang signifikan, karena lalu lintas jaringan sangat berkurang.

Pengaturan yang ditentukan oleh SET NOCOUNT berlaku pada waktu eksekusi atau eksekusi dan bukan pada waktu penguraian.

Untuk menampilkan pengaturan saat ini untuk pengaturan ini, jalankan kueri berikut.

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

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

SELECT @NOCOUNT AS NOCOUNT;

Izin

Memerlukan keanggotaan dalam peran publik .

Contoh

Contoh berikut mencegah pesan tentang jumlah baris yang terpengaruh ditampilkan. Dalam contoh berikut, (5 rows affected) hanya dikembalikan ke klien dari pernyataan pertama 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