SÉLECTIONNEZ * EN conserve COMMANDE PAR dans SQL Server 2008, mais pas en 2012

Exécuter la requête SQL suivante en 2008 et en 2012. Lorsqu'il est exécuté en 2008, le résultat retourné est dans le bon ordre de tri. En 2012, l'ordre de tri n'est pas conservé.

Est-ce un connu de changement? Est-il un travail autour de pour 2012 afin de conserver l'ordre de tri?

CREATE TABLE #MyTable(Name VARCHAR(50), SortOrder INT)
INSERT INTO #MyTable SELECT 'b', 2 UNION ALL SELECT 'c', 3 UNION ALL SELECT 'a', 1 UNION ALL SELECT 'e', 5 UNION ALL SELECT 'd', 4

SELECT * INTO #Result FROM #MyTable ORDER BY SortOrder

SELECT * FROM #Result

DROP TABLE #MyTable
DROP TABLE #Result
Une table dans SQL Server n'a jamais d'ordre implicite - si vous avez besoin d'un ordre spécifique, vous offre une ORDER BY clause à votre SELECT déclaration pour l'obtenir.

OriginalL'auteur Rivka | 2013-05-20