CREATE procedure s_Tables_Page
(
@pagesize int,
@pageindex int,
@table varchar(200)
)
as
set nocount on
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
declare @sql varchar(4000),@sql1 varchar(1000)
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
select @sql='insert into '+@indextable+'(nid) select id from '+@table+' order by id desc'
exec (@sql)
select @sql1='select * from '+@table+' O,'+@indextable+'t where O.id=t.nid and t.id>'+@PageLowerBound+' and t.id<='+@PageUpperBound+' order by t.id'
exec (@sql1)
解决方案 »
- 关于 select top with ties的问题
- 请问 t-sql 语句 中 有没有 函数 去除 字符串 两端 的空格 ????????????????????
- 一个看是简单,却有点难的sql语句
- sql server 2008 management studio安装问题
- 数据库sql2008r2 64位 内存使用问题
- 高手来看下,帮帮忙啊!
- 关于 Update 语句
- 嵌套的sql语句,有点复杂,请大侠解析
- 关于excel的释放,十万火急的问题,希望能今天有各结果,
- MySQL导出insert into语句
- delphi中如何调用sql server的dts动态库
- 求一SQL语句。在线.....
(
@pagesize int,
@pageindex int,
@table varchar(200)
)
as
set nocount on
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
exec ('declare @indextable table(id int identity(1,1),nid int) insert into '+@indextable+'(nid) select id from '+@table+' order by id desc select * from '+@table+' O,'+@indextable+'t where O.id=t.nid and t.id>'+@PageLowerBound+' and t.id<='+@PageUpperBound+' order by t.id')
set nocount off
GO
(
@pagesize int,
@pageindex int,
@table varchar(200)
)
as
set nocount on
--declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
exec ('declare @indextable table(id int identity(1,1),nid int) insert into '+@indextable+'(nid) select id from '+@table+' order by id desc select * from '+@table+' O,'+@indextable+'t where O.id=t.nid and t.id>'+@PageLowerBound+' and t.id<='+@PageUpperBound+' order by t.id')
set nocount off
GO
(
@pagesize int,
@pageindex int,
@table varchar(200)
)
as
set nocount on
create table #indextable (id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
exec ('insert #indextable (nid) select id from '+@table+' order by id desc')
declare @a varchar(8000)
set @a='select * from '+@table+' O,#indextable t where O.id=t.nid and t.id>'+cast(@PageLowerBound as varchar(10))+' and t.id<='+cast(@PageUpperBound as varchar(10))+' order by t.id'
exec(@a)
set nocount off
GO
可以定义一个表或临时表来替换一下就可以了。