Syntax 靠近'的语法不正确;订单';。运行总数。SQL Server 2012
此代码:Syntax 靠近'的语法不正确;订单';。运行总数。SQL Server 2012,syntax,sql-server-2012,cumulative-sum,Syntax,Sql Server 2012,Cumulative Sum,此代码: select AccountCode.AccountCodeID, sum(AccountCode.AccountCodeID) Over (order by AccountCodeID) as RunningTotal from AccountCode 导致此错误消息的原因: 味精102,第15级,状态1,第2行 “order”附近的语法不正确 在SQL Server 2012上。非常感谢您的建议。语法似乎很好-因此它应该适用于SQL Server 20
select
AccountCode.AccountCodeID,
sum(AccountCode.AccountCodeID) Over (order by AccountCodeID) as RunningTotal
from
AccountCode
导致此错误消息的原因:
味精102,第15级,状态1,第2行“order”附近的语法不正确
在SQL Server 2012上。非常感谢您的建议。语法似乎很好-因此它应该适用于SQL Server 2012 有两种可能仍然无效:
- 您正在运行SQL Server 2012Management Studio,但与较旧的SQL Server引擎版本相比,您可以通过运行以下命令来检查这一点:
SELECT @@VERSION
- 您运行的数据库的兼容性级别较低,因此不支持SQL Server 2012功能,例如
窗口功能 通过对您的数据库运行以下命令来查找:OVER(ORDER BY…
SQL Server 2012的兼容性级别应为110——如果低于此级别,您可能需要更改此级别SELECT name, compatibility_level FROM sys.databases WHERE database_id = DB_ID()
ALTER DATABASE (YourDatabaseName)
SET COMPATIBILITY_LEVEL = 105;
你完成了。现在,您的查询应该可以正常工作。手头没有2012实例,但确认如果
AccountCodeID
是我假设的INT
列,那么它在SQL 2014(12.0.4213.0)上可以正常工作+1我运行了SELECT@@@VERSION并获得了Microsoft SQL Server 2008 R2(SP2)-10.50.4033.0(X64)2014年7月9日16:04:25版权所有(c)Windows NT 6.1上的Microsoft Corporation Enterprise Edition(64位)(Build 7601:Service Pack 1),但当我转到“关于”时,徽标是SQL Server 2012。第二个qry给出了兼容性级别80@DasalKalubowila:兼容性级别80是SQL Server 2000,它肯定不支持这些窗口功能!将SQL Server 2008的数据库兼容性级别更新为100,它应该可以工作框是关于Management Studio GUI工具的信息-这与实际的底层数据库引擎无关…@DasalKalubowila:将数据库的兼容性级别更改为更高的数字基本上只会解锁其他T-SQL功能-这意味着针对数据库执行的SQL代码可以使用更多的T-SQL功能比以前更好了。SQL Server通常会非常小心地删除以前存在的功能(这些功能可能不再适用于您的代码)。但这是一个数据库范围的变化,所以我肯定会首先在测试环境中进行,并彻底测试我的应用程序!