createPROCEDURE[dbo].[PagingRecord] ( @PageIndexint,--页号,从0开始 @PageSizeint,--页尺寸 @OrderFieldvarchar(100),--排序字段及类型(多个条件用逗号分开)如:JobID DESC,Checkintime @TableNamevarchar(100),--表名或视图表 @FieldListvarchar(2000),--欲选择字段列表 @DoCountASbit=1-- 0值返回记录总数, 非 0 值则返回记录 ) AS DECLARE@SqlQueryvarchar(4000) IF@DoCount<>0--需要返回记录总数 begin DECLARE@SearchSqlASNvarchar(4000) SET@SearchSql='SELECT Count(*) AS Total FROM '+@tablename exec sp_executesql @SearchSql --print @SearchSql end SET@SqlQuery='SELECT '+@FieldList+' FROM (SELECT row_number() over(ORDER BY '+@OrderField+') as rownum, '+@FieldList+' FROM '+@TableName+') as temp WHERE rownum BETWEEN ('+cast(@PageIndexasvarchar)+'-1)*'+cast(@PageSizeasvarchar)+'+1 and '+cast(@PageIndexasvarchar)+'*'+cast(@PageSizeasvarchar)+' ORDER BY '+@OrderField --print @SqlQuery SET NOCOUNT ON execute(@SqlQuery) SET NOCOUNT OFF