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