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 |