SET ROWCOUNT (Transact-SQL)
지정한 행 수가 반환된 후 SQL Server가 쿼리 처리를 중지하도록 합니다.
구문
SET ROWCOUNT { number | @number_var }
인수
- number | @number\_var
특정 쿼리를 중지하기 전에 처리된 행의 수(정수)입니다.
주의
중요 |
---|
SQL Server의 다음 버전에서는 SET ROWCOUNT 옵션을 사용해도 DELETE, INSERT 및 UPDATE 문에 영향을 주지 않습니다. 새 개발 작업에서는 DELETE, INSERT 및 UPDATE 문에 SET ROWCOUNT 옵션을 사용하지 않도록 하고 현재 이 옵션을 사용하는 응용 프로그램은 수정하십시오. 유사한 동작의 경우 TOP 구문을 사용합니다. 자세한 내용은 TOP(Transact-SQL)을 참조하십시오. |
모든 행이 반환될 수 있도록 이 옵션을 해제하려면 SET ROWCOUNT 0을 지정하십시오.
SET ROWCOUNT 옵션을 설정하면 대부분의 Transact-SQL 문이 지정한 행 수에 영향을 받게 될 때 처리를 중지합니다. 여기에는 트리거가 포함됩니다. ROWCOUNT 옵션은 동적 커서에는 영향을 주지 않지만 키 집합 및 INSENSITIVE 커서의 행 집합을 제한합니다. 이 옵션을 사용할 때는 주의해야 합니다.
SET ROWCOUNT 옵션은 행 개수가 더 작은 값일 경우 SELECT 문의 TOP 키워드보다 우선 적용됩니다.
SET ROWCOUNT 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.
사용 권한
public 역할의 멤버 자격이 필요합니다.
예
SET ROWCOUNT는 지정한 행 수 이후에는 처리를 중지합니다. 다음 예에서는 500개 이상의 행이 300보다 작은 Quantity 조건과 일치합니다. 그러나 SET ROWCOUNT를 적용한 후 일부 행이 반환되지 않은 것을 알 수 있습니다.
USE AdventureWorks2012;
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)