set ansi_nulls on
set quoted_identifier on
gocreate procedure [dbo].[getdatawithpage]
@tablename nvarchar(max), --表名
@fields nvarchar(max), --各欄位
@where nvarchar(max), --條件語句
@orderby nvarchar(max), --排序
@groupby nvarchar(max), --歸組
@pageindex int, --當前頁
@pagesize int --每頁數量
asbegin
-- set nocount on added to prevent extra result sets from
-- interfering with select statements.
set nocount on; --設定nocount
declare @beginindex int --查詢開始位置
declare @endindex int --查詢結束位置
declare @sql nvarchar(max) --要執行的sql 語句
declare @sqlcount nvarchar(max) --計算記錄數的sql 語句
declare @groupbystring nvarchar(max) --分組語句
if(@where = '') begin
set @where = '1 = 1'
endselect @beginindex = (@pageindex - 1) * @pagesize
select @endindex = @pageindex * @pagesize
if(@groupby <> n'') begin
set @groupbystring = n' group by ' + @groupby
end else begin
set @groupbystring = n' '
endset @sql = n'
begin
with thetable as(
select ' + @fields + ', row_number() over(order by ' + @orderby + ') as rownumber
from ' + @tablename + '
where ' + @where + ' ' + @groupbystring + '
)select *
from thetable
where rownumber > ' + convert(nvarchar(255), @beginindex) + '
and rownumber <= ' + convert(nvarchar(255), @endindex) + '
end'
set @sqlcount = n'
begin
with thetable as(
select row_number() over(order by ' + @orderby + ') as rownumber
from ' + @tablename + ' where ' + @where + ' ' + @groupbystring + '
)select count(*) as [rows] from thetable
end'
print @sql
--print @sqlcount
execute sp_executesql @sql
execute sp_executesql @sqlcount
end-------------------
set ansi_nulls on
set quoted_identifier on
通用儲存過程
alter proc dbo pagination pagesize int 10 每頁顯示的記錄數 pagecurrent int 1 當前要顯示的頁號 fdname varchar 100 主鍵名或者標識列名 selectstr varchar 2000 select子句,不包含select關鍵...
通用儲存過程 分頁儲存過程
名稱 spall returnrows 輸入 輸出 呼叫 exec spall returnrows select from 表名 頁號,返回記錄數,主鍵 排序字段 spall returnrows select from all categories 2,10,id id 說明 百萬級 通用儲存過...
通用分頁儲存過程
create procedure sp page strtable varchar 50 表名 strcolumn varchar 50 按該列來進行分頁 intcoltype int,strcolumn列的型別,0 數字型別,1 字元型別,2 日期時間型別 intorder bit,排序,0 順序...