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

求高手看下如何把此代码改成Sql2000可以用的
服务器上数据库换成2000的了,之前写的存储过程中有个ROW_NUMBER()函数2000上没有,没法用,请高手给转换下看在2000的该怎么写。
代码如下:

SET @strSql='SELECT * FROM (SELECT ROW_NUMBER() OVER('+@strOrder+') RowNo,'+ @tbGetFields+' FROM ' + @tbName + ' WHERE 1=1 ' + @strWhere+' ) tb WHERE tb.RowNo BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND ' +str(@PageIndex*@PageSize)


变量说明:
@tbName--表名
@tbGetFields--查询的字段
@strWhere--条件
@OrderfldName--排序方法
@PageSize--每页显示几条
@PageIndex--页码

------解决方案--------------------
在SQL2000中改写ROW_NUMBER()要用临时表,看你现在的写法,应该是在程序中执行数据库语句的,这样很麻烦。

如果数据不是非常多,可以先select出来所有数据,然后再程序中编码。
或者就是写个存储过程,然后在程序中调用,这样就简单很多。
------解决方案--------------------
那你就找个2000的分页代码改一下嘛