sql 分页 还有问题

Posted on 2008-04-23 22:44 把大海藏到心里 阅读(174) 评论(2)  编辑 收藏 所属分类: SQL

create proc getUsers
(
@pageindex int,
@pagecount int,
@count int output
)
as
 drop table #tempa
 select @count=count(*) from users;
 create table #tempa(_id int identity(1,1),_userid int)
 insert #tempa select [id] from users
 declare @start int,@end int
 set @start=@pageindex * @pagecount
 set @end=@start * @pagecount
 declare @sql varchar(100)
 set @sql='select * from users as a inner join #tempa as b on b._userid=a.id and b._id between '
  +ltrim(rtrim(str(@start)))+' and '+ltrim(rtrim(str(@end)))
 exec (@sql)

 


运行 :
declare @out int
exec getUsers 0,10,@out
print @out
 

结果:
消息 3701,级别 11,状态 5,过程 getUsers,第 8 行
无法对 表'#tempa' 执行 删除,因为它不存在,或者您没有所需的权限。

(8181 行受影响)

(0 行受影响)

必须显示的表名字段名:  
   
  SET   IDENTITY_INSERT   del   ON  
  insert   into   del(id,birthday)   select   id,birthday   from   del     --标明字段名  
  SET   IDENTITY_INSERT   del   OFF

Feedback

#1楼    回复  引用  查看    

2008-04-23 23:16 by stswordman      
在执行drop table #tempa之前要判断#tempa是否存在,
不过在存储过程中可以使用表变量

#2楼    回复  引用  查看    

2008-04-24 00:57 by PerfectDesign      

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-23 23:32 编辑过