SET ROWCOUNT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Database SQL di Microsoft Fabric

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

Konvensi sintaks transact-SQL

Sintaks

SET ROWCOUNT { number | @number_var }   

Argumen

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

Keterangan

Penting

Menggunakan SETSET ROWCOUNT tidak akan memengaruhi DELETEpernyataan , INSERT, dan UPDATE dalam rilis SQL Server di masa mendatang. Hindari menggunakan SETSET ROWCOUNT pernyataan , DELETEINSERT, 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 ditampilkan, tentukan SET ROWCOUNT 0.

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

SET ROWCOUNT mengganti kata kunci pernyataan SELECT TOP jika jumlah baris 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 diproses 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 set hasilnya.

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 diproses 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

SET Pernyataan (Transact-SQL)