적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric의 SQL 데이터베이스
지정한 수의 행이 반환되면 SQL Server가 쿼리 처리를 중지하도록 합니다.
구문
SET ROWCOUNT { number | @number_var }
인수
번호 | @number_var
특정 쿼리를 중지하기 전에 처리된 행의 수(정수)입니다.
설명
중요
사용 SETSET ROWCOUNT 은 향후 SQL Server 릴리스에서 , , DELETEINSERT 문장에 영향을 미치UPDATE지 않습니다. 새로운 개발 작업에서는 , , SETSET ROWCOUNT , 문DELETE장을 사용하는 INSERTUPDATE 것을 피하고, 현재 이 문장을 사용하는 애플리케이션을 수정할 계획입니다. 유사한 동작의 경우 TOP 구문을 사용합니다. 자세한 내용은 TOP(Transact-SQL)을 참조하세요.
이 옵션을 꺼서 모든 행이 반환되도록 하려면, 0을 지정합니다 SET ROWCOUNT .
옵션을 설정하면 SET ROWCOUNT 대부분의 Transact-SQL 문장이 지정된 행 수에 의해 영향을 받으면 처리가 중단됩니다. 여기에는 트리거가 포함됩니다. ROWCOUNT 이 옵션은 동적 커서에는 영향을 미치지 않지만, 키셋과 비민감각 커서의 행 집합을 제한합니다. 이 옵션을 사용할 때는 주의해야 합니다.
SET ROWCOUNT 행 수가 더 작은 값일 경우 SELECT 문의 TOP 키워드를 덮어씁니다.
설정 SET ROWCOUNT 은 구문 분석 시간이 아니라 실행 또는 런타임에 설정됩니다.
사용 권한
public 역할의 멤버 자격이 필요합니다.
예제
SET ROWCOUNT 지정된 행 수가 끝나면 처리가 중단됩니다. 다음 예에서는 500개 이상의 행이 Quantity보다 작은 300 조건과 일치합니다. 하지만 신청 SET ROWCOUNT후 모든 행이 반환된 것은 아니라는 것을 알 수 있습니다.
USE AdventureWorks2022;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
결과 집합은 다음과 같습니다.
Count
-----------
537
(1 row(s) affected)
이제 ROWCOUNT를 4로 설정하고 모든 행을 반환하여 4개의 행만 반환되는지 확인합니다.
SET ROWCOUNT 4;
SELECT *
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
-- (4 row(s) affected)
예제: Azure Synapse Analytics
SET ROWCOUNT 지정된 행 수가 끝나면 처리가 중단됩니다. 다음 예에서는 20개를 초과한 행이 AccountType = 'Assets'의 기준을 충족한다는 것에 유의하십시오. 하지만 신청 SET ROWCOUNT후 모든 행이 반환된 것은 아니라는 것을 알 수 있습니다.
-- Uses AdventureWorks
SET ROWCOUNT 5;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';
모든 행을 반환하려면 0으로 설정 ROWCOUNT 하세요.
-- Uses AdventureWorks
SET ROWCOUNT 0;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';