SQL Server 2000上的SQL Server ROW_NUMBER()?

9 sql sql-server sql-server-2000

我有一个查询,允许我通过给它一个最小和最大限制从数据库表中获取记录.

它是这样的:

  SELECT T1.CDUSUARIO, T1.DSALIAS, T1.DSNOMBRE_EMPRESA, T1.DSCARGO, T1.DSDIRECCION_CORREO, T1.CDUSUARIO_ADMINISTRADOR, T1.FEMODIFICACION 
    FROM (SELECT *, 
               ROW_NUMBER() OVER (ORDER BY CDUSUARIO) as row FROM TBL_USUARIOS ) as T1 
   WHERE row > @limiteInf 
     and row <= @limiteSup 
ORDER BY DSALIAS ASC;
Run Code Online (Sandbox Code Playgroud)

现在,它在SQL Server 2005和SQL Server 2008上就像天堂一样,但是试图在SQL Server 2000数据库上运行它并说:

ROW_NUMBER它是一个未知的函数名称或类似的东西.

我能做什么??

gbn*_*gbn 11

  • 有一个COUNT(*)与自连接解决方案在这里,将扩展严重
  • 您可以加载带有IDENTITY列的临时表并回读但不保证可以正常工作(找不到文章,多年前曾在MS研讨会上讲过)

这两种解决方案都不支持PARTITION BY

我没有提到基于循环或基于CURSOR的解决方案可能更糟

编辑20011年5月20日

IDENTITY无法工作的示例演示:
插入的记录是否始终接收连续的标识值


小智 2

使用其他功能或升级数据库。ROW_NUMBER 在 2000 版本的数据库中并不存在。观点。你对此无能为力。

  • 这似乎不是很有帮助。他显然知道现在不是 2000 年,错误消息告诉他这一点。 (4认同)