Sdílet prostřednictvím


NASTAVTE POČET ŘÁDKŮ (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Způsobí, že SQL Server přestane zpracovávat dotaz po zadání požadovaného počtu řádků.

Transact-SQL konvence syntaxe

Syntaxe

SET ROWCOUNT { number | @number_var }   

Arguments

číslo | @number_var
Je číslo, celé číslo, řádků, které je třeba zpracovat před zastavením konkrétního dotazu.

Poznámky

Důležité

Použití SET ROWCOUNT neovlivní příkazy DELETE, INSERT a UPDATE v budoucích verzích SQL Serveru. Vyhněte se používání SET ROWCOUNT s příkazy DELETE, INSERT a UPDATE v nové vývojové práci a plánujte upravovat aplikace, které jej aktuálně používají. Pro podobné chování použijte syntaxi TOP. Další informace naleznete v tématu TOP (Transact-SQL).

Pro nastavení této možnosti tak, aby se všechny řádky vracely, zadejte NASTAVIT POČET ŘÁDKŮ 0.

Nastavení volby SET ROWCOUNT způsobí, že většina Transact-SQL příkazů přestane zpracovávat, když jsou ovlivněny daným počtem řádků. To zahrnuje i spouštěče. Volba ROWCOUNT neovlivňuje dynamické kurzory, ale omezuje počet řádků klíčových sad a necitlivých kurzorů. Tuto možnost je třeba používat opatrně.

SET ROWCOUNT přepisuje klíčové slovo SELECT TOP, pokud je počet řádků menší.

Nastavení SET ROWCOUNT se nastavuje při spuštění nebo běhu a ne při parse.

Povolení

Vyžaduje členství ve veřejné roli.

Examples

SET ROWCOUNT ukončí zpracování po stanoveném počtu řádků. V následujícím příkladu si všimněte, že více než 500 řádků splňuje kritéria menší než Quantity300. Po aplikaci SET ROWCOUNT však vidíte, že ne všechny řádky byly vráceny.

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

Tady je soubor výsledků.

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

(1 row(s) affected)

Nyní nastavte ROWCOUNT na a 4 vraťte všechny řádky, abyste ukázali, že jsou vráceny pouze 4 řádky.

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

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

SET ROWCOUNT ukončí zpracování po stanoveném počtu řádků. V následujícím příkladu si všimněte, že více než 20 řádků splňuje kritéria .AccountType = 'Assets' Po aplikaci SET ROWCOUNT však vidíte, že ne všechny řádky byly vráceny.

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

Pro vrácení všech řádků nastavte ROWCOUNT na 0.

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

Viz také

Příkazy SET (Transact-SQL)