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

不支持 OVER SQL 构造或语句??????
本帖最后由 yeosn 于 2011-08-02 10:56:46 编辑 我用如下语句在SQL Server 2005中查询:

WITH Notice_CTE AS (SELECT *, ROW_NUMBER() OVER (ORDER BY [DateTime] DESC) AS RowNumber
FROM NoticeInfor)
    SELECT     *
     FROM         Notice_CTE
     WHERE     RowNumber BETWEEN 1 AND 5

结果提示“不支持 OVER SQL 构造或语句”。这是怎么回事啊?望各位高手不吝赐教!
------最佳解决方案--------------------
select @@VERSION看看版本
2000不支持
------其他解决方案--------------------
SELECT *, ROW_NUMBER() OVER (ORDER BY [DateTime] DESC) AS RowNumber
FROM NoticeInfor

这样能查出来什么不?
------其他解决方案--------------------
把数据库属性-> 选项中的兼容级别改为   90  试试!
------其他解决方案--------------------
引用:
引用:
select @@VERSION看看版本
2000不支持


执行select @@VERSION后返回如下信息:
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
Oct 14 2005 00:33:37 
Copyright (c) 1988-2005 Microsoft Corp……

你的机器上装了2000和2005吧??难道是连接到2000的实例上去了?

要么打上2005的SP3补丁试下
------其他解决方案--------------------
引用:
引用:
引用:
引用:
select @@VERSION看看版本
2000不支持


执行select @@VERSION后返回如下信息:
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:3……

看来你的安装有问题 不如重新安装一下
------其他解决方案--------------------
引用:
select @@VERSION看看版本
2000不支持


执行select @@VERSION后返回如下信息:
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
Oct 14 2005 00:33:37 
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
的确是SQL 2005啊
------其他解决方案--------------------
引用:
SELECT *, ROW_NUMBER() OVER (ORDER BY [DateTime] DESC) AS RowNumber
FROM NoticeInfor

这样能查出来什么不?


这样也会提示“不支持 OVER SQL 构造或语句”,但关掉这个提示对话框后是可以把所有记录都查出来的。
------其他解决方案--------------------
引用:
把数据库属性-> 选项中的兼容级别改为 90 试试!


兼容级别就是90,还是不行
------其他解决方案--------------------
引用:
引用:
引用:
select @@VERSION看看版本
2000不支持


执行select @@VERSION后返回如下信息:
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-20……