2017-01-23 1 views
0

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?

Antwort

1

versuchen diese

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

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 .... –

0

Ich denke eher, als die Ausdrücke zu überprüfen die Migration Assistent einen Hinweis einer Bestellung durch Klausel sieht es nur die Warnung geben. Unordentlich Ich weiß, aber @ Esperento57 Methode ist der einzige Weg, um es in Gang zu bringen.

Verwandte Themen