SET ROWCOUNT (Transact-SQL)
지정한 행 수가 반환된 후 SQL Server 가 쿼리 처리를 중지하도록 합니다.
구문
SET ROWCOUNT { number | @number_var }
인수
number| **@**number_var
특정 쿼리를 중지하기 전에 처리된 행의 수(정수)입니다.
주의
중요: |
---|
SQL Server 의 다음 버전에서는 SET ROWCOUNT 옵션을 사용해도 DELETE, INSERT 및 UPDATE 문에 영향을 주지 않습니다. 새 개발 작업에서는 SET ROWCOUNT 옵션을 DELETE, INSERT 및 UPDATE 문과 함께 사용하지 말고, 현재 이 옵션을 사용하는 응용 프로그램을 수정하십시오. 또한 현재 SET ROWCOUNT 옵션을 사용하는 DELETE, INSERT 및 UPDATE 문은 TOP 구문을 사용하여 다시 작성하는 것이 좋습니다. 자세한 내용은 DELETE(Transact-SQL), INSERT(Transact-SQL) 또는 UPDATE(Transact-SQL)를 참조하십시오. |
원격 테이블 및 로컬 분할 뷰와 원격 분할 뷰에 대한 INSERT, UPDATE, DELETE 문에 대해서는 SET ROWCOUNT 옵션 설정이 무시됩니다.
모든 행이 반환될 수 있도록 이 옵션을 해제하려면 SET ROWCOUNT 0을 지정하십시오.
[!참고] SET ROWCOUNT 옵션을 지정하면 대부분의 Transact-SQL 문이 지정한 행 수에 영향을 받게 될 때 처리를 중지합니다. 트리거 및 INSERT, UPDATE, DELETE와 같은 데이터 수정 문이 이에 포함됩니다. ROWCOUNT 옵션은 동적 커서에는 영향을 주지 않지만 키 집합 및 INSENSITIVE 커서의 행 집합을 제한합니다. 이 옵션을 사용할 때는 주의를 기울여야 하며 기본적으로 SELECT 문과 함께 사용해야 합니다.
SET ROWCOUNT 옵션은 행 개수가 더 작은 값일 경우 SELECT 문의 TOP 키워드보다 우선 적용됩니다.
INSERT, UPDATE 및 DELETE 문에서는 명시적인 TOP 식이 동일한 문에 사용될 경우 SET ROWCOUNT 옵션을 무시합니다. 여기에는 INSERT 뒤에 SELECT 절이 오는 문이 포함됩니다.
SET ROWCOUNT 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.
사용 권한
public 역할의 멤버 자격이 필요합니다.
예
SET ROWCOUNT는 지정한 행 수 이후에는 처리를 중지합니다. 다음 예에서는 545개 행이 300
보다 작은 Quantity
조건과 일치합니다. 그러나 업데이트를 통해 반환된 행 수를 보면 일부 행이 처리되지 않은 것을 알 수 있습니다. ROWCOUNT는 모든 Transact-SQL 문에 영향을 줍니다.
USE AdventureWorks;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
결과 집합은 다음과 같습니다.
Count
-----------
537
(1 row(s) affected)
이제 ROWCOUNT
를 4
로 설정하고 Quantity
가 300
보다 작은 모든 행을 업데이트합니다.
SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO
(4 row(s) affected)