SET ROWCOUNT (Transact-SQL)

지정한 행 수가 반환된 후 SQL Server 가 쿼리 처리를 중지하도록 합니다.

구문

SET ROWCOUNT { 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 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.

인수

------------------------------------------------------------------------------------------
number | @number_var
------------------------------------------------------------------------------------------

특정 쿼리를 중지하기 전에 처리된 행의 수(정수)입니다.

사용 권한
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)
------------------------------------------------------------------------------------------

//========================================================================================

@@ROWCOUNT(Transact-SQL)


최근 실행된 문의 영향을 받은 행 수를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

------------------------------------------------------------------------------------------

@@ROWCOUNT

------------------------------------------------------------------------------------------


주의
Transact-SQL 문은 다음과 같은 방법으로 @@ROWCOUNT의 값을 설정할 수 있습니다.

● @@ROWCOUNT를 영향을 받거나 읽은 행의 수로 설정합니다. 행은 클라이언트로 전송될 수도 그렇지 않을 수도 있습니다.


● 이전에 실행한 문의 @@ROWCOUNT를 유지합니다.


● @@ROWCOUNT를 0으로 다시 설정하지만 클라이언트에게 값을 반환하지 않습니다.


단순한 할당을 수행하는 문은 항상 @@ROWCOUNT 값을 1로 설정합니다. 클라이언트에게 행은 보내지지 않습니다. 이러한 문의 예로는 SET @local_variable, RETURN, READTEXT, 그리고 SELECT GETDATE() 또는 SELECT 'Generic Text'와 같이 쿼리 문이 없는 SELECT 문이 있습니다.

쿼리에서 할당을 수행하거나 쿼리에 RETURN을 사용하는 문은 @@ROWCOUNT 값을 쿼리의 영향을 받거나 쿼리가 읽은 행 수로 설정합니다. 예를 들면 SELECT @local_variable = c1 FROM t1과 같습니다.

DML(데이터 조작 언어) 문은 @@ROWCOUNT 값을 쿼리의 영향을 받는 행 수로 설정하고 해당 값을 클라이언트에 반환합니다. DML 문은 클라이언트에게 행을 보내지 않을 수도 있습니다.

DECLARE CURSOR와 FETCH는 @@ROWCOUNT 값을 1로 설정합니다.

EXECUTE 문은 이전 @@ROWCOUNT를 유지합니다.

USE, SET
2009/01/22 11:49 2009/01/22 11:49
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3920

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/3920

« Previous : 1 : ... 2513 : 2514 : 2515 : 2516 : 2517 : 2518 : 2519 : 2520 : 2521 : ... 6391 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Statistics Graph

Site Stats

Total hits:
186450
Today:
708
Yesterday:
745