日期:2014-05-17  浏览次数:20458 次

存储过程返回数据行及总数
平时经常会用到条件比较多跨表在存储过程分页查询,一般这几个参数少不了@startIndex int,--    开始行号@endIndex int,   --结束行号 @orderby varchar(20) --排序字段,最后又要返回总记录数及分页的数行,本来写了一大推sql然后就返回数据了,又要返回一个总行数,又要搞字符串拼接查询两次才得到,或者用一个临时表保存,最后查询总数和数据,我这个人比较懒,所以懒得去创建临时表!还有没更好方便的办法实现这个呢??平时要是不用存储过程还两次查询。 还有就是平时在查询分析器里面inser into #tb,感觉很方便,但在存储过程里面就提示没定义,虽然可以运行,但是看上去很不爽,有没办法呢??
------最佳解决方案--------------------
SET NOCOUNT OFF;
SELECT * FROM tb;
DECLARE @_RowCount BIGINT;
SET @_RowCount=@@ROWCOUNT;

------其他解决方案--------------------
@pageIndex int, -- 在第几页
@pageSize int, --每页记录数
@pageTable nvarchar(1000), --查询的表名
@sqlCondition nvarchar(2000),--查询的条件
@orderBy varchar(20), -- 根据什么排序(参数为列名)
@orderType varchar(20), --排序的类型
@itemCount int output, --总记录数
@pageCount int output --总页数
我一般都是这样的 当然参数命名不咋样 一次返回所有需要的数据 
------其他解决方案--------------------
引用:
平时经常会用到条件比较多跨表在存储过程分页查询,一般这几个参数少不了@startIndex int,--    开始行号@endIndex int,   --结束行号 @orderby varchar(20) --排序字段,最后又要返回总记录数及分页的数行,本来写了一大推sql然后就返回数据了,又要返回一个总行数,又要搞字符串拼接查询两次才得到,或者用一个临时表保存,最后……
没人知道吗:??
------其他解决方案--------------------
引用:
@pageIndex int, -- 在第几页
@pageSize int, --每页记录数
@pageTable nvarchar(1000), --查询的表名
@sqlCondition nvarchar(2000),--查询的条件
@orderBy varchar(20), -- 根据什么排序(参数为列名)
@orderType varchar(20……
我的意思是说为了返回一个总行又要写太多存储过程拼接字符串啊
------其他解决方案--------------------
引用:
引用:@pageIndex int, -- 在第几页
@pageSize int, --每页记录数
@pageTable nvarchar(1000), --查询的表名
@sqlCondition nvarchar(2000),--查询的条件
@orderBy varchar(20), -- 根据什么排序(参数为列名……


也不是很多 但是我的是通用的啊 而且支持多表关联查询的