SET ROWCOUNT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Menyebabkan SQL Server berhenti memproses kueri setelah jumlah baris yang ditentukan dikembalikan.

Konvensi sintaks transact-SQL

Sintaksis

SET ROWCOUNT { number | @number_var }   

Catatan

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

Argumen

number | @number_var
Adalah angka, bilangan bulat, baris yang akan diproses sebelum menghentikan kueri tertentu.

Keterangan

Penting

Menggunakan SET ROWCOUNT tidak akan memengaruhi pernyataan DELETE, INSERT, dan UPDATE dalam rilis SQL Server di masa mendatang. Hindari menggunakan SET ROWCOUNT dengan pernyataan DELETE, INSERT, dan UPDATE dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakannya. Untuk perilaku serupa, gunakan sintaks TOP. Untuk informasi selengkapnya, lihat TOP (Transact-SQL).

Untuk menonaktifkan opsi ini sehingga semua baris dikembalikan, tentukan SET ROWCOUNT 0.

Mengatur opsi SET ROWCOUNT menyebabkan sebagian besar pernyataan Transact-SQL berhenti memproses ketika mereka telah dipengaruhi oleh jumlah baris yang ditentukan. Ini termasuk pemicu. Opsi ROWCOUNT tidak memengaruhi kursor dinamis, tetapi membatasi kumpulan baris set kunci dan kursor yang tidak sensitif. Opsi ini harus digunakan dengan hati-hati.

SET ROWCOUNT mengambil alih kata kunci TOP pernyataan SELECT jika rowcount adalah nilai yang lebih kecil.

Pengaturan SET ROWCOUNT diatur pada waktu eksekusi atau run time dan bukan pada waktu penguraian.

Izin

Memerlukan keanggotaan dalam peran publik.

Contoh

SET ROWCOUNT berhenti memproses setelah jumlah baris yang ditentukan. Dalam contoh berikut, perhatikan bahwa lebih dari 500 baris memenuhi kriteria kurang dari Quantity300. Namun, setelah menerapkan SET ROWCOUNT, Anda dapat melihat bahwa tidak semua baris dikembalikan.

USE AdventureWorks2022;  
GO  
SELECT count(*) AS Count  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  

Berikut adalah hasil yang ditetapkan.

Count 
----------- 
537 

(1 row(s) affected)

Sekarang, atur ROWCOUNT ke 4 dan kembalikan semua baris untuk menunjukkan bahwa hanya 4 baris yang dikembalikan.

SET ROWCOUNT 4;  
SELECT *  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  
  
-- (4 row(s) affected)

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

SET ROWCOUNT berhenti memproses setelah jumlah baris yang ditentukan. Dalam contoh berikut, perhatikan bahwa lebih dari 20 baris memenuhi kriteria AccountType = 'Assets'. Namun, setelah menerapkan SET ROWCOUNT, Anda dapat melihat bahwa tidak semua baris dikembalikan.

-- Uses AdventureWorks  
  
SET ROWCOUNT 5;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Untuk mengembalikan semua baris, atur ROWCOUNT ke 0.

-- Uses AdventureWorks  
  
SET ROWCOUNT 0;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Lihat Juga

Pernyataan SET (Transact-SQL)