我试图从SQL Server 2012迁移到2016,并且已经运行Microsoft Database Migration Assistant。在移民助理中,我只是试图说明重大变化。其中一个突破性变化如下所示。ORDER问题尝试从SQL Server 2012迁移到2016时
select
Name1 as 'Name',
Age1 as 'Age' from Table
order by 'Name'
以下说明即将出炉。
当数据库兼容性模式设置为80或更低版本时,ORDER BY子句中允许(并忽略)常量表达式。但是,当数据库兼容性模式设置为90或更高版本时,ORDER BY子句中的这些表达式将导致语句失败。
这里是这样的问题陈述的例子:
SELECT * FROM Production.Product
ORDER BY CASE WHEN 1=2 THEN 3 ELSE 2 END
然而,创建相同的架构和运行在SQL Server 2016相同的代码后,该声明似乎是工作的罚款。我错过了什么?
感谢您的评论。但是我的问题更像是我写的东西是否有问题。因为我给出的别名和DBA给出的例子似乎不太相似...... –