zoukankan      html  css  js  c++  java
  • 很强大的sqlserver分页存储过程

    代码
    -- ================================================
    --
    Template generated from Template Explorer using:
    --
    Create Procedure (New Menu).SQL
    --
    --
    Use the Specify Values for Template Parameters
    --
    command (Ctrl-Shift-M) to fill in the parameter
    --
    values below.
    --
    --
    This block of comments will not be included in
    --
    the definition of the procedure.
    --
    ================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    --
    Author: <Author,,Name>
    --
    Create date: <Create Date,,>
    --
    Description: <Description,,>
    --
    =============================================
    CREATE PROCEDURE ContractRecord_GetAll_Page
    -- Add the parameters for the stored procedure here
    @filterExpression NVARCHAR(2000),
    @sortExpression NVARCHAR(100),
    @rowIndex INT = 0,
    @pageSize INT = 24,
    @TotalRecords INT OUTPUT
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    CREATE TABLE #GoodsKind (RowNumber INT, ContractID uniqueidentifier)
    IF ((@sortExpression IS NULL) OR (LEN(@sortExpression) = 0))
    BEGIN
    SET @sortExpression = 'ContractCode asc'
    END

    DECLARE @SQLString NVARCHAR(MAX)
    SET @SQLString = N'
    INSERT INTO #GoodsKind
    SELECT ROW_NUMBER() OVER (ORDER BY
    ' + @sortExpression + ') AS RowNumber, ContractID
    FROM vw_ContractRecord
    '
    IF ((@filterExpression IS NOT NULL) AND (LEN(@filterExpression) > 0))
    BEGIN
    SET @SQLString = @SQLString + ' WHERE ' + @filterExpression
    END

    EXECUTE sp_executesql @SQLString

    SELECT @TotalRecords = COUNT(ContractID)
    FROM #GoodsKind
    -- Insert statements for procedure here
    SELECT p.ContractID,EntCode,ContractCode,GoodsLimitDepartment,Supplier,Merchandiser,ContractTime,
    Remark,RealAmount,TaxAmount,RealAndTaxAmount,OperatorName,InputDate
    FROM #GoodsKind as p INNER JOIN vw_ContractRecord as C on p.ContractID = C.ContractID
    WHERE p.RowNumber BETWEEN @rowIndex + 1 AND @rowIndex + @PageSize ORDER BY p.RowNumber
    END
    GO
  • 相关阅读:
    Android开发之Toast的快去替换
    Android开发之Fragment的替换显示反复创建问题
    Android开发之多渠道打包
    Android开发之让其他软件调用自己播放器
    Android开发之的到屏幕的宽和高
    Android开发之视频播放调用setVideoPath()方法
    [luogu4931]情侣?给我烧了!
    CF449D Jzzhu and Numbers
    [PKUWC2018]猎人杀
    [BZOJ3028]食物
  • 原文地址:https://www.cnblogs.com/larson/p/1802997.html
Copyright © 2011-2022 走看看