SET ROWCOUNT (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Az SQL Server leállítja a lekérdezés feldolgozását a megadott sor visszaküldése után.

Transact-SQL szintaxis konvenciók

Szemantika

SET ROWCOUNT { number | @number_var }   

Arguments

szám | @number_var
Ez a sorok száma, egy egész szám, amelyeket fel kell dolgozni a konkrét lekérdezés megállítása előtt.

Megjegyzések

Fontos

A használat SETSET ROWCOUNT nem befolyásolja DELETE, INSERT, és UPDATE állításokat a jövőbeli SQL Server kiadásban. Kerüld SETSET ROWCOUNTDELETEaz új fejlesztési munkákban a , INSERT, és UPDATE utasítások használatát, és tervezd meg a jelenleg használó alkalmazások módosítását. Hasonló viselkedéshez használd a TOP szintaxist. További információ: TOP (Transact-SQL).

Ahhoz, hogy ezt az opciót úgy állítsd ki, hogy minden sor visszakerüljön, megadjuk SET ROWCOUNT a 0-t.

Az SET ROWCOUNT opció beállítása miatt a legtöbb Transact-SQL utasítás leáll a feldolgozás, ha a megadott sorszám érinti őket. Ez magában foglalja a kiváltó okokat is. Ez az ROWCOUNT opció nem érinti a dinamikus kurzorokat, de korlátozza a kulcskészlet és érzéketlen kurzorok sorkészletét. Ezt az opciót óvatosan kell használni.

SET ROWCOUNT felülírja a SELECT utasítást, a TOP kulcsszót, ha a sorszám a kisebb érték.

A SET ROWCOUNT beállítása végrehajtáskor vagy futtatáskor van beállítva, és nem elemzési időpontban.

Permissions

A nyilvános szerepkörhöz tagságra van szükség.

Példák

SET ROWCOUNT a megadott sorszám után megáll a feldolgozás. A következő példában vegyük figyelembe, hogy több mint 500 sor megfelel a Quantity kevesebb mint 300. Azonban a jelentkezés SET ROWCOUNTután láthatod, hogy nem minden sor került vissza.

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

Itt van az eredmények összessége.

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

(1 row(s) affected)

Most állítsd ROWCOUNT be és 4 vissza az összes sort, hogy mutassd meg, csak 4 sor van vissza.

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

SET ROWCOUNT a megadott sorszám után megáll a feldolgozás. A következő példában jegyezzük meg, hogy több mint 20 sor megfelel a .AccountType = 'Assets' Azonban a jelentkezés SET ROWCOUNTután láthatod, hogy nem minden sor került vissza.

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

Az összes sor visszaküldéséhez állítsd ROWCOUNT 0-ra.

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

Lásd még:

SET Utasítások (Transact-SQL)