SET ROWCOUNT (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í SETSET ROWCOUNT , INSERT, a příkazů UPDATE v budoucím vydání SQL Server neovlivníDELETE. Vyhněte se používání SETSET ROWCOUNT s DELETE, INSERT, a příkazy UPDATE v nové vývojové práci a plánujte upravovat aplikace, které je 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 volby, aby se vrátily všechny řádky, zadejte SET ROWCOUNT 0.

Nastavení SET ROWCOUNT této možnosti způsobí, že většina Transact-SQL příkazů přestane zpracovávat, když jsou ovlivněny stanoveným počtem řádků. To zahrnuje i spouštěče. Tato ROWCOUNT možnost neovlivňuje dynamické kurzory, ale omezuje sadu řá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 příkazu TOP, pokud je počet řádků menší.

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

Povolení

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

Examples

SET ROWCOUNT přestane zpracovávat 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 ROWCOUNTvšak můžete vidět, ž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 přestane zpracovávat 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 ROWCOUNTvšak můžete vidět, ž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é

SET Příkazy (Transact-SQL)