• 分页存储过程


    CREATE PROCEDURE [dbo].[DK_Get_Page_List]
    @TableName NVARCHAR(MAX), --要显示的表或多个表的连接
    @FieldName NVARCHAR(500), --要显示的字段列表
    @FieldSort NVARCHAR(200), --排序字段列表或条件,必须输入
    @Condition NVARCHAR(1000), --查询条件,不需WHERE,必须输入
    @PageSize INT = 20, --每页显示的记录数
    @Page INT = 1 , --要显示那一页的记录
    @RtnCurpage INT = 1 OUTPUT, --返回显示那一页的记录
    @RtnPageCount INT = 1 OUTPUT, --查询结果分页后的总页数
    @RtnCount INT = 1 OUTPUT, --查询到的记录数
    @RtnMsg NVARCHAR(100) OUTPUT --返回信息
    AS
    BEGIN
    SET NOCOUNT ON;
    SET @RtnMsg = ''

    BEGIN TRY
    DECLARE @Sql NVARCHAR(MAX)
    --取得总记录数
    SET @Sql = N'SELECT @Cnt = COUNT(1) FROM ' + @TableName + N' WHERE ' + @Condition
    /*
    * 输出PING SQL
    * SELECT @Sql
    */
    EXEC sp_executesql @Sql, N'@Cnt INT OUTPUT', @RtnCount OUTPUT

    IF @RtnCount = 0
    BEGIN
    SET @RtnPageCount = 0
    SET @RtnCurpage = 0
    SET NOCOUNT OFF
    RETURN
    END

    --取得分页总数
    SET @RtnPageCount = (@RtnCount + @PageSize - 1)/@PageSize

    --取得当前页值
    SET @RtnCurpage = @Page
    IF @Page > @RtnPageCount
    BEGIN
    SET @RtnCurpage = @RtnPageCount
    END
    IF @Page < 1
    BEGIN
    SET @RtnCurpage = 1
    END

    --取得分页记录结果
    SET @Sql = N' SELECT * FROM ( SELECT ' + @FieldName + N', ROW_NUMBER() OVER(ORDER BY ' + @FieldSort
    + N') AS _ROW FROM ' + @TableName + N' WHERE ' + @Condition
    + N') _Table WHERE _Table._ROW BETWEEN ' + CAST(@PageSize * (@RtnCurpage - 1) + 1 AS NVARCHAR(12))
    + N' AND ' + CAST(@RtnCurpage * @PageSize AS NVARCHAR(12))
    /*
    * 输出PING SQL
    * SELECT @Sql
    */
    EXEC (@Sql)
    END TRY
    BEGIN CATCH
    SET @RtnMsg = '系统错误'
    END CATCH

    SET NOCOUNT OFF
    END

    GO

  • 相关阅读:
    MAC配置DNS服务器
    真机IOS8.3以上的文件夹共享
    appium + python的环境配置_windows
    python 的时间与日期
    sublimetext 2 编译文件带input时 提示 EOFError: EOF when reading a line
    cmd无法输入中文解决方案
    配置python学习环境遇到的问题:[Decode error
    monkey初接触
    Android logcat输出中文乱码
    运行 命令框不记录打过的命令,重启后CMD里面是空的.上次打过的命令消失了.
  • 原文地址:https://www.cnblogs.com/lxf1117/p/4707295.html
Copyright © 2020-2023  润新知