通用儲存過程

2021-06-07 03:21:39 字數 1995 閱讀 1212

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 順序...