Ich versuche, von SQL Server 2012 zu 2016 zu migrieren und den Microsoft Database Migration Assistant für die gleiche ausgeführt haben. Im Migrationsassistenten versuche ich nur Breaking Changes abzudecken. Eine der brechenden Veränderungen zeigt sich wie folgt.Problem mit ORDER Beim Versuch, von SQL Server 2012 zu 2016 zu migrieren
select
Name1 as 'Name',
Age1 as 'Age' from Table
order by 'Name'
Die folgende Erklärung kommt dafür.
Konstante Ausdrücke sind in der ORDER BY-Klausel zulässig (und werden ignoriert), wenn der Datenbankkompatibilitätsmodus auf 80 oder früher festgelegt ist. Diese Ausdrücke in der ORDER BY-Klausel führen jedoch dazu, dass die Anweisung fehlschlägt, wenn der Datenbankkompatibilitätsmodus auf 90 oder höher festgelegt ist. Hier
ist ein Beispiel für solche problematischen Aussagen:
SELECT * FROM Production.Product
ORDER BY CASE WHEN 1=2 THEN 3 ELSE 2 END
jedoch nach dem gleichen Schema Erstellen und Ausführen von dem gleichen Code in SQL Server 2016, scheint die Aussage zu funktionieren. Verpasse ich etwas?
Danke für den Kommentar. Aber meine Frage ist eher, ob es irgendwelche Probleme mit dem, was ich geschrieben habe, gibt. Weil meine Aliasnamen, die ich gegeben habe, und die Beispiele, die der DBA gibt, nicht ein bisschen ähnlich sind .... –