shanshao 发表于 2007-8-2 15:00:39

请教一个分页存储的问题

<p>今天在网上看了一个有关分页的存储过程,如下</p><p>create procedure splitpage @qry varchar(16384),@ipage int, @num int as&nbsp;&nbsp; <br/>&nbsp;<a>/*@qry</a> SQL语句, @ipage 页数, @num 每页记录条数, */ <br/>begin <br/>&nbsp;&nbsp;&nbsp; declare @rcount int <br/>&nbsp;&nbsp;&nbsp; declare @execsql varchar(16384) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select @rcount=@ipage*@num <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set rowcount @rcount /*&nbsp; 返回指定的行数后不在处理 */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @execsql = stuff(@qry,charindex('select',@qry),6,'select sybid=identity(12),') <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @execsql = stuff(@execsql, charindex('from',@execsql),4,'into #temptable1 from')<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set @execsql = @execsql || ' select * from #temptable1&nbsp; where sybid&gt;' || convert(varchar,(@ipage-1)*@num) || ' and sybid &lt;= ' || convert(varchar,@ipage*@num) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print @execsql<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; execute (@execsql) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set rowcount 0 <br/>end </p><p>对一些内容不是很了解 </p><p>execute(@execsql)最后有两条select语句,他们为什么能一起执行</p><p>如果我拆分成两条execute语句,首先执行插入到临时表的语句,其次执行查询语句,则就得不到结果&nbsp; 怎么回事,哪位大侠可以帮我解决这些疑惑&nbsp; 谢谢了</p><p></p><p>drop proc splitpage<br/>exec splitpage("select name from shan_test",1,20)</p>
页: [1]
查看完整版本: 请教一个分页存储的问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com