creat proc 存储过程名
@pageIndex int,
@pageSize int,
@filterWhere varchar(100),--过滤条件
@TaxisField varchar(30),--排序字段
@ID int--类别ID以下是通过变量表找出无限级分类父级ID下所有的末端ID
_______________________________________
declare @TempTab table(nid int)--存放频道ID的表
    insert into @TempTab values(@ID)
    while 1=1 --找出@ID下级为末端节点的ID
       begin
insert into @TempTab select ID from Category 
where ParId in(select nid from @TempTab) and
ID not in(select nid from @TempTab) and IsEnd = 1 --IsEnd表示是否末端节点
if @@rowcount = 0 break
       end 
_______________________________________
以下是通过变量表实现分页
_______________________________________
declare @indextable table(id int identity(1,1),nid int) --定义表变量,id作为自增长字段,用入分页
declare @PageLowerBound int --定义此页的底码 
declare @PageUpperBound int --定义此页的顶码 
declare @Sql varchar(300)
set @PageLowerBound=(@pageindex-1)*@pagesize 
set @PageUpperBound=@PageLowerBound+@pagesize 
_______________________________________
我如果直接查找数据插入数据排序给实现分页的变量表,就会出现order by 后不能用变量的问题
insert into @indextable(nid) select a.Pro_Id from Products a,@TempTab b where a.ID=b.nid order by @TaxisField-----order by 后不能有输入参数
我如果用字符拼接的方法问题是在我的@SQl字符变量,系统不认识@TempTab这个变量表
declare @Sql varchar(300)
set @Sql='select a.Pro_Id from Products a,@TempTab b where a.ID=b.nid order by '+@TaxisField以下是存储过程最后的语句,通过@indextable变量表进行排序
_____________________________________________________
select * from Products O,@indextable t where O.Pro_Id=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id不知道我的描述是否清楚,如有不明处,请指出,高手帮忙~~在线等~~~~!!!!!