다음을 통해 공유


@@ROWCOUNT(Transact-SQL)

최근 실행된 문의 영향을 받은 행 수를 반환합니다. 행 수가 20억 개보다 많을 경우 ROWCOUNT_BIG을 사용하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

@@ROWCOUNT

반환 형식

int

주의

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 <option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION 또는 COMMIT TRANSACTION과 같은 문은 ROWCOUNT 값을 0으로 다시 설정합니다.

다음 예에서는 UPDATE 문을 실행하고 @@ROWCOUNT를 사용하여 변경된 행이 있는지 확인합니다.

USE AdventureWorks;
GO
UPDATE HumanResources.Employee 
SET Title = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO