CREATE PROCEDURE ProcGetPage
@SQLSTR NVARCHAR(4000)
,@PAGECOUNT INT=1
,@PAGESIZE INT=99999
AS
SET NOCOUNT ON
DECLARE @P1 INT, @S varchar(8000)
SET @PAGECOUNT=(@PAGECOUNT-1)*@PAGESIZE+1
set @S = 'select top ' + convert(varchar,@PAGESIZE) + '* from tablename where 主键 not in select top' + convert(varchar,(@PAGECOUNT-1)*@PAGESIZE) + '主键 from tablename '
Exec (@S)
类似于这样通过动态语句来实现。
'
GO
@SQLSTR NVARCHAR(4000)
,@PAGECOUNT INT=1
,@PAGESIZE INT=99999
AS
SET NOCOUNT ON
DECLARE @P1 INT, @S varchar(8000)
SET @PAGECOUNT=(@PAGECOUNT-1)*@PAGESIZE+1
set @S = 'select top ' + convert(varchar,@PAGESIZE) + '* from tablename where 主键 not in select top' + convert(varchar,(@PAGECOUNT-1)*@PAGESIZE) + '主键 from tablename '
Exec (@S)
类似于这样通过动态语句来实现。
'
GO
解决方案 »
- 存储过程中动态查询问题,该怎样才效率最高?
- [在线求助]sql server2005安装时出现:请插入碟2,是怎么回事??
- 排序问题
- 求助关于数据库导出的问题
- 关于SQLsever2000的一些问题,找高手解决啊
- OTL 连接数据库SQL Server2008R2不关闭连接 一段时间内出现(08S01)通讯链接失败,重新连接会出现(08002)连接正在被使用
- 请大家帮忙。关于扩展存储过程
- 说难也难,说易可能也易:如何利用ADO控件将数据插入一个空表
- 如何将数据库中的一个字段添加到Memo中,并且当单击到该字段时获得数据库中相应记录的值??
- 如何在PB中调整列宽?
- 求助:如何查这样的数据!!!难啊 求高人指点
- 如何在SQL的Select中强制使用指定的索引
@SQLnVARCHAR(4000),--不带排序语句的SQL语句
@Pageint,--页码
@RecsPerPageint,--每页容纳的记录数
@IDVARCHAR(255),--需要排序的不重复的ID号
@SortVARCHAR(255)--排序字段及规则
)
ASDECLARE@StrnVARCHAR(4000)
SET@Str='SELECTTOP'+CAST(@RecsPerPageASVARCHAR(20))+'*FROM('+@SQL+')TWHERET.'+@ID+'NOTIN
(SELECTTOP'+CAST((@RecsPerPage*(@Page-1))ASVARCHAR(20))+''+@ID+'FROM('+@SQL+')T9ORDERBY'+@Sort+')ORDERBY'+@SortPRINT@StrEXECsp_ExecuteSql@Str
GO