나는 같은 SQL 문이있는 경우 :어쨌든 TOP을 사용할 때 @@ ROWCOUNT와 비슷한 값을 얻으려고합니까?
SELECT TOP 5
*
FROM Person
WHERE Name LIKE 'Sm%'
ORDER BY ID DESC
PRINT @@ROWCOUNT
-- shows '5'
는 SANS 다시 쿼리를 다시 실행하지 않고 쿼리와 일치하는 모든 행의 실제 개수는 @@ROWCOUNT
같은 값을 얻을 수 어쨌든 있나요 TOP 5
?
실제 문제는 TOP n
또는 SET ROWCOUNT n
을 사용할 수 있기 때문에 훌륭하게 수행되는 훨씬 복잡하고 집중적 인 쿼리이지만 UI에 페이징 정보를 올바르게 표시하는 데 필요한 총 수를 얻을 수 없습니다. 현재 *
대신 @Count = COUNT(ID)
으로 쿼리를 다시 발행해야합니다.
비슷한 질문 : 1) http : // stackoverflow .com/questions/2200357/sql-return-limited-rows-but-full-row-count 2) http://stackoverflow.com/questions/610932/how-to-retrieve-the-total -row-count-of-a-query-with-top – JYelton
사실, 누군가가 T-SQL에 특정한 흑 마법을 @@의 형태로 가질 수 있기를 바랬습니다. --- – cfeduke