SQL Server 2008 分頁預存程序

來源:互聯網
上載者:User

標籤:style   blog   color   ar   2014   art   cti   div   

在用的,已經不知道出處了,如果有侵權請告訴我,我立刻刪掉。

USE [ActivaOnlineSupport]GO/****** Object:  StoredProcedure [dbo].[PROCE_PAGECHANGE]    Script Date: 08/13/2014 13:45:17 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[PROCE_PAGECHANGE]( @TableName varchar(50),            --表名 @ReFieldsStr varchar(200) = ‘*‘,   --欄位名(全部欄位為*) @OrderString varchar(200),         --排序欄位(必須!支援多欄位不用加order by) @WhereString varchar(500) =N‘‘,  --條件陳述式(不用加where) @PageSize int,                     --每頁多少條記錄 @PageIndex int = 1 ,               --指定當前為第幾頁 @TotalRecord int output            --返回總記錄數)AS  BEGIN         --處理開始點和結束點    Declare @StartRecord int;    Declare @EndRecord int;     Declare @TotalCountSql nvarchar(500);     Declare @SqlString nvarchar(2000);        set @StartRecord = (@PageIndex-1)*@PageSize + 1    set @EndRecord = @StartRecord + @PageSize - 1     SET @TotalCountSql= N‘select @TotalRecord = count(*) from ‘ + @TableName;--總記錄數語句    SET @SqlString = N‘(select row_number() over (order by ‘+ @OrderString +‘) as rowId,‘+@ReFieldsStr+‘ from ‘+ @TableName;--查詢語句    --    IF (@WhereString! = ‘‘ or @WhereString!=null)        BEGIN            SET @TotalCountSql=@TotalCountSql + ‘  where ‘+ @WhereString;            SET @SqlString =@SqlString+ ‘  where ‘+ @WhereString;                    END    --第一次執行得到    --IF(@TotalRecord is null)    --   BEGIN           EXEC sp_executesql @totalCountSql,N‘@TotalRecord int out‘,@TotalRecord output;--返回總記錄數    --  END    ----執行主語句    set @SqlString =‘select * from ‘ + @SqlString + ‘) as t where rowId between ‘ + ltrim(str(@StartRecord)) + ‘ and ‘ +  ltrim(str(@EndRecord));    Exec(@SqlString)    END

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.