Udostępnij za pomocą


USTAW LICZBĘ WIERSZY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Powoduje, że SQL Server przestaje przetwarzać zapytanie po otrzymaniu określonej liczby wierszy.

Transact-SQL konwencje składni

Składnia

SET ROWCOUNT { number | @number_var }   

Arguments

liczba | @number_var
To liczba, czyli liczba całkowita, wierszy do przetworzenia przed zatrzymaniem konkretnego zapytania.

Uwagi

Ważne

Użycie SET ROWCOUNT nie wpłynie na instrukcje DELETE, INSERT i UPDATE w przyszłych wersjach SQL Servera. Unikaj używania SET ROWCOUNT z instrukcjami DELETE, INSERT i UPDATE w nowych projektach deweloperskich i planuj modyfikację aplikacji, które już z tego korzystają. Dla podobnego zachowania użyj składni TOP. Aby uzyskać więcej informacji, zobacz TOP (Transact-SQL).

Aby wyłączyć tę opcję i zwrócić wszystkie wiersze, określ USTAW LICZBĘ WIERSZY 0.

Ustawienie opcji SET ROWCOUNT powoduje, że większość Transact-SQL instrukcji przestaje być przetwarzana, gdy zostaną dotknięte określoną liczbą wierszy. Dotyczy to także czynników wyzwalających. Opcja ROWCOUNT nie wpływa na dynamiczne kursory, ale ogranicza zestaw wierszy zestawu kluczy i nieczułych kursorów. Tę opcję należy stosować ostrożnie.

SET ROWCOUNT nadpisuje słowo kluczowe SELECT TOP, jeśli liczba wierszy jest mniejsza.

Ustawienie SET ROWCOUNT jest ustawiane w czasie wykonania lub działania, a nie w czasie parsowania.

Permissions

Wymaga członkostwa w roli publicznej.

Przykłady

USTAW LICZBĘ wierszy kończy przetwarzanie po określonej liczbie wierszy. W poniższym przykładzie należy zauważyć, że ponad 500 wierszy spełnia kryteria Quantity mniejsze niż 300. Jednak po zastosowaniu USTAW LICZNIK WIERSZY widać, że nie wszystkie wiersze zostały zwrócone.

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

Oto zestaw wyników.

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

(1 row(s) affected)

Teraz ustaw ROWCOUNT na i 4 zwróć wszystkie wiersze, aby pokazać, że zwracane są tylko 4 wiersze.

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

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

USTAW LICZBĘ wierszy kończy przetwarzanie po określonej liczbie wierszy. W następnym przykładzie należy zauważyć, że ponad 20 wierszy spełnia kryteria .AccountType = 'Assets' Jednak po zastosowaniu USTAW LICZNIK WIERSZY widać, że nie wszystkie wiersze zostały zwrócone.

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

Aby zwrócić wszystkie wiersze, ustaw ROWCOUNT na 0.

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

Zobacz też

INSTRUKCJE SET (Transact-SQL)