2017-01-23 113 views
0

我試圖從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相同的代碼後,該聲明似乎是工作的罰款。我錯過了什麼?

回答

1

試試這個

select 
Name1 as Name, 
Age1 as Age from Table 
order by Name 
+0

感謝您的評論。但是我的問題更像是我寫的東西是否有問題。因爲我給出的別名和DBA給出的例子似乎不太相似...... –

0

我覺得不是,如果遷移助理看到訂單的暗示by子句,它只是給出警告評估表達式。凌亂我知道,但@ Esperento57的方法是實現它的唯一方法。