1 USE [test]
 2 GO
 3 /****** Object:  StoredProcedure [dbo].[PageIndex]    Script Date: 12/07/2011 10:26:36 ******/
 4 SET ANSI_NULLS ON
 5 GO
 6 SET QUOTED_IDENTIFIER ON
 7 GO
 8 ALTER PROCEDURE [dbo].[PageIndex]
 9 (
10  @Tbname varchar(100),--表名字
11  @Strfield varchar(100),--查询字段
12  @idfield varchar(50),--主键ID
13  @Toppage int=10,--每页行数
14  @PageNow int=0,--查询页数
15  @strWhere varchar(100) ='1=1',--查询条件
16  @Pagecount int=0 output,--总页数
17  @order varchar(200)=''--排序条件
18 ) 
19 AS 
20     DECLARE @sql nvarchar(1000),
21             @sqloder varchar(200)
22 BEGIN
23     if(@Pagecount=0)--总页数
24         begin
25             declare @page int
26             set @sql= 'select @Page=COUNT('+@idfield+') from '+@Tbname+ ' where '+@strWhere
27             print @sql
28             exec sp_executesql @sql,N'@Page int output',@Page output--查询总行数    
29             SELECT @pageCount=CEILING((@page+0.0)/@Toppage) --计算页数
30             print @pageCount
31         end
32     if(@order!='')--排序条件
33         begin
34             set @sqloder='ORDER BY '+@order
35         end
36     else
37         begin
38             set @sqloder=''
39         end
40     if(@strWhere!='')--查询条件
41     begin
42         set @strWhere='where '+@strWhere
43     end
44     begin--执行SQL语句
45     --/*
46         set @sql='SELECT TOP '
47             +cast(@Toppage as varchar(200))+
48             ' '+@Strfield+' FROM (SELECT '+@Strfield+',ROW_NUMBER() OVER (ORDER BY '
49             +@order+') AS RowNumber 
50             FROM '+@Tbname+') A WHERE RowNumber > '
51             +cast(@Toppage as varchar(200))+' * ('
52             +cast(@PageNow as varchar(200))+'-1) '+@sqloder
53             --*/
54         --print @sql
55         /*set @sql ='SELECT TOP '+cast(@Toppage as varchar(200))+' '+@Strfield+ '
56                 FROM '+@Tbname+'
57                 WHERE '+@idfield+' > 
58                         ( 
59                             SELECT ISNULL(MAX('+@idfield+'),0) 
60                             FROM 
61                         ( 
62                         SELECT TOP ('+cast(@Toppage as varchar(200))+'*('+cast(@PageNow as varchar(200))+'-1)) 
63                             '+@idfield+' FROM '+@Tbname+' '+@sqloder+' 
64                             ) A 
65                         ) '+@sqloder*/
66             print (@sql)
67         exec (@sql)
68         
69     end     
70 END
View Code

相关文章:

  • 2022-03-08
  • 2021-10-28
  • 2021-12-25
  • 2021-05-28
  • 2022-12-23
猜你喜欢
  • 2022-01-23
  • 2021-07-29
  • 2022-12-23
  • 2021-06-09
  • 2022-01-09
  • 2021-11-22
相关资源
相似解决方案