SQL 페이지 나누기 저장 프로세스(다중 테이블 연합 조회는 지원되지 않으며 다중 필드 정렬은 지원되지 않음)
2709 단어 저장 프로세스
CREATE PROCEDURE [dbo].[Pro_GetPageOfRecords]
@PageSize INT=20, --
@CurrentPage INT, --
@Clumns VARCHAR(1000)='*', --
@TableName VARCHAR(100), --
@Condition VARCHAR(1000)='', -- , Where
@AscColumn VARCHAR(100)='', -- ( order by column asc/desc)
@BitOrderType BIT=0, -- (0 ,1 )
@PkColumn VARCHAR(50)='', -- ,
@TotalCount INT OUTPUT , --
@TotalPageCount INT OUTPUT --
AS
BEGIN
DECLARE @strSql VARCHAR(5000) --
DECLARE @strOrderType VARCHAR(1000) --
DECLARE @SqlCount NVARCHAR(4000) --
DECLARE @new_where VARCHAR(1000) --
----Where -------------
IF @Condition!=''
BEGIN
SET @new_where = ' Where ' + @Condition
END
ELSE
BEGIN
SET @new_where = ' Where 1=1'
END
---------- ---------------
SET @SqlCount = 'Select @TotalCount=COUNT(*),@TotalPageCount=CEILING((COUNT(*)+0.0)/'
+STR(@PageSize)+') FROM (Select * FROM ' + @TableName + @new_where+') AS T'
BEGIN
EXEC SP_EXECUTESQL @SqlCount,N'@TotalCount INT OUTPUT,@TotalPageCount INT OUTPUT',
@TotalCount OUTPUT,@TotalPageCount OUTPUT
END
-------------- ------------
IF @BitOrderType=1 --
BEGIN
IF @AscColumn!=''
SET @strOrderType=' ORDER BY '+@AscColumn+' DESC'
ELSE
SET @strOrderType=' ORDER BY '+@PkColumn+' DESC'
END
ELSE
BEGIN
IF @AscColumn!=''
SET @strOrderType=' ORDER BY '+@AscColumn+' ASC'
ELSE
SET @strOrderType=' ORDER BY '+@PkColumn+' ASC'
END
----------------- --------------------
IF @CurrentPage=1 --
BEGIN
SET @strSql='SELECT TOP '+STR(@PageSize)+''+@Clumns+' FROM'+ @TableName + @new_where+@strOrderType
END
ELSE --
BEGIN
set @strsql = 'SELECT TOP '+STR(@PageSize)+' '+@Clumns+' FROM '+ @TableName + @new_where+' AND ('+@PkColumn+' NOT IN (SELECT TOP '+STR((@PageSize-1)*@PageSize)+' '+@PkColumn+' FROM '+@TableName+''+@Condition+@strOrderType+'))'+@strOrderType
END
EXEC (@strSql)
END
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 호출 Oracle 스토리지 프로세스 상세 정보Java 호출 Oracle 스토리지 프로세스 상세 정보 단계: 1. Oracle 스토리지 프로세스 작성 2. 데이터베이스 작성 연결 도구 클래스 얻기 3. 간단한 응용 프로그램 호출 저장 프로세스 작성 구현: 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.