Megosztás a következőn keresztül:


ÁLLÍTSD BE SORSZÁMOT (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 SET ROWCOUNT használata nem befolyásolja a DELETE, INSERT és UPDATE utasításokat a jövőbeli SQL Server kiadásban. Kerüld az új fejlesztési munkákban a SET ROWCOUNT használatát DELETE, INSERT és UPDATE utasításokkal, és tervezd az éppen 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ítsuk be, hogy minden sor visszakerüljön, megadjuk a SET SORSZÁM 0-t.

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

A 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ási vagy futási időben van beállítva, nem parse időben.

Permissions

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

Példák

A SET ROWCOUNT megállítja a feldolgozást a megadott sorszám után. A következő példában vegyük figyelembe, hogy több mint 500 sor megfelel a Quantity kevesebb mint 300. Azonban a SET ROWCOUNT alkalmazás után látható, 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)

A SET ROWCOUNT megállítja a feldolgozást a megadott sorszám után. A következő példában jegyezzük meg, hogy több mint 20 sor megfelel a .AccountType = 'Assets' Azonban a SET ROWCOUNT alkalmazás után látható, 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ítsuk be a SORSZÁMOT 0-ra.

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

Lásd még:

SET-utasítások (Transact-SQL)