Stored Procedure를 사용해서 페이징을 사용할 경우가 많다.

그때, Parameter Input 값으로 PageSize와 PageNo을 받는다.

그리고 나서 StartIndex, EndIndex를 지정해준다.


SET @intStartIndex = (@intPageNo - 1) * @intPageSize + 1

SET @intEndIndex  = (@intPageNo - 1) * @intPageSize + @intPageSize


EXEC SP_EXECUTESQL 호출은 첫번째 매개변수 인자 값은 실행할 Query 문이다. (조건절 포함)

그리고 그 다음, Parameter를 정의한 변수가 들어가야된다.

ex> @strParams = N'@strYMD CHAR(8), @strNextYMD CHAR(8), @int_RecordCnt INT OUT'


그 다음 정의한 변수들을 맵핑 시켜주면 된다.

ex> EXEC SP_EXECUTESQL @strSql                 

    ,@strParams

                              ,@strYMD        = @strYMD

                              ,@strNextYMD   = @strNextYMD

                  ,@intRecordCnt = @intRecordCnt OUT


페이징은 이전에 설명한 Row_Number() 를 이용해서 StartIndex부터 EndIndex까지 조회하면 된다.

'개발 > MSSQL' 카테고리의 다른 글

SQL ANSI_NULLS  (0) 2016.03.14
SQL SET IDENTITY_INSERT  (0) 2016.03.11
JOB 안에 커멘드 내용 검색  (0) 2016.02.22
[SQL] RANK, DENSE_RANK, ROW_NUMBER 차이점을 알아보자.  (0) 2016.02.15
OUTER JOIN 유의점  (0) 2016.02.11

+ Recent posts