CORRECTIF : Lorsque vous une requête via une vue qui utilise la clause ORDER BY dans SQL Server 2008, le résultat est toujours retourné dans un ordre aléatoire

SQL Server 2008

Microsoft distribue les correctifs de Microsoft SQL Server 2008 en tant que fichier téléchargeable. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans la précédente 2008 de SQL Server version du correctif.

SQL Server 2005

Microsoft distribue les correctifs de Microsoft SQL Server 2005 en tant que fichier téléchargeable. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans la précédente de SQL Server 2005 version du correctif.
Pour plus d’informations sur la liste principale des builds qui ont été publiées après la publication de SQL, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

957826 où vous trouverez plus d’informations sur le 2008 de SQL Server les builds qui ont été publiées après SQL Server 2008 et les versions de SQL Server 2005 publiées après SQL Server 2005 Service Pack 2

Cet article décrit les éléments suivants concernant cette version du correctif :
  • Les problèmes qui sont résolus par le package de correctifs
  • Les conditions requises pour l’application du correctif logiciel
  • Si vous devez redémarrer l’ordinateur après avoir appliqué le package de correctifs
  • Si le package de correctifs est remplacé par un autre package de correctif logiciel
  • Si vous devez effectuer les modifications de Registre après avoir appliqué le package de correctifs
  • Les fichiers qui sont contenus dans le package de correctifs

Symptômes

Vous avez une vue dans une base de données dans SQL Server 2005 ou SQL Server 2008. Dans la définition de la vue, l’instruction SELECT remplit les conditions suivantes :
  • L’instruction SELECT utilise l’expression TOP (100 %).
  • L’instruction SELECT utilise la clause ORDER BY.
Lorsque vous interrogez la vue, le résultat est retourné dans un ordre aléatoire.

Toutefois, ce comportement est différent de Microsoft SQL Server 2000. Dans SQL Server 2000, le résultat est retourné dans l’ordre spécifié dans la clause ORDER BY.

SQL Server 2008

Le correctif de ce problème a été publié dans 1 de mise à jour Cumulative.

Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :



956717

Package de mise à jour cumulative 1 pour SQL Server 2008



Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif.

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :



956909

Versions de la mise SQL Server 2008 publiées après SQL Server 2008 a été



SQL Server 2005

Il existe deux versions de ce correctif. Une version est conçue pour être appliquée à la version de SQL Server 2005. L’autre version est conçue pour être appliqué à SQL Server 2005 Service Pack 2 (SP2). Si vous exécutez la version de SQL Server 2005, appliquez le correctif décrit dans cet article (build 1554). Si vous exécutez SQL Server 2005 SP2, appliquez le package de mise à jour cumulative 2 pour SQL Server 2005 SP2 (build 3175). Si vous exécutez SQL Server 2005 Service Pack 1 (SP1), installez SQL Server 2005 SP2 et ensuite appliquer le package de mise à jour cumulative 2 pour SQL Server 2005 SP2 (build 3175). Le package de mise à jour cumulative 2 pour SQL Server 2005 SP2 (build 3175) est décrite dans l’article 936305 de la Base de connaissances Microsoft. Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

936305 le package de mise à jour cumulative 2 pour SQL Server 2005 Service Pack 2 est disponible

Informations sur le correctif

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique.

Si le correctif est disponible pour le téléchargement, il existe une section « Téléchargement de correctif logiciel disponible » au début de cet article de la Base de connaissances. Si cette section n’apparaît pas, soumettez une demande au Service Clients et Support de Microsoft pour obtenir le correctif.

Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone service clientèle de Microsoft ou pour créer une demande de service distincte, visitez le site Web de Microsoft à l’adresse suivante :Remarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c'est parce qu'il n'y a pas de correctif disponible pour cette langue.

Conditions préalables

Vous devez avoir installé à la version de SQL Server 2005 pour appliquer ce correctif.

Informations sur le redémarrage

Vous devez redémarrer le service SQL Server après avoir appliqué ce correctif.

Informations concernant le Registre

Vous n’êtes pas obligé de modifier le Registre après avoir appliqué ce correctif.

Actions après avoir appliqué ce correctif.

Ce correctif introduit l’indicateur de trace 168. Après avoir appliqué ce correctif, vous devez activer l’indicateur de trace 168. Pour plus d’informations sur l’activation d’un indicateur de trace dans SQL Server 2005, consultez la section « Remarque » du site Web Microsoft Developer Network (MSDN) suivant :En outre, vous devez modifier le niveau de compatibilité de la base de données contenant la vue à 80.

Pour modifier le niveau de compatibilité, procédez comme suit :
  1. Ouvrez SQL Server Management Studio, puis connectez-vous à l’instance de SQL Server 2005.
  2. Avec le bouton droit de la base de données qui contient la vue, puis cliquez sur Propriétés.
  3. Dans le volet Sélectionner une page , cliquez sur Options.
  4. Dans la liste niveau de compatibilité , sélectionnez SQL Server 2000 (80).
Remarque L’indicateur de trace 168 doit être définie avant que la base de données est migré vers SQL Server 2005. Si l’indicateur de trace 168 est défini après la migration de la base de données, le résultat de la requête restera non trié.

Informations sur les fichiers de correctif logiciel

Ce correctif contient uniquement les fichiers qui sont nécessaires pour corriger les problèmes décrits dans cet article. Ce correctif ne peut pas contenir tous les fichiers nécessaires à la mise à jour complète d’un produit vers la dernière version.

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.
Nom de fichierVersion de fichierTaille du fichierDateHeurePlateforme
Logread.exe2005.90.1554.0397,08804-Oct-200616:06x86
Microsoft.sqlserver.replication.dll2005.90.1554.01,608,48004-Oct-200616:06x86
Microsoft.sqlserver.smo.dll9.0.1554.01,559,32804-Oct-200616:06x86
Microsoft.sqlserver.sqlenum.dll9.0.1554.0895,77604-Oct-200616:06x86
Msmdlocal.dll9.0.1554.015,626,52804-Oct-200616:08x86
Msmdredir.dll9.0.1554.03,929,88804-Oct-200616:08x86
Osql.exe2005.90.1554.051,48804-Oct-200616:04x86
Replrec.dll2005.90.1554.0781,08804-Oct-200616:06x86
Sqlaccess.dll2005.90.1554.0349,47204-Oct-200616:06x86
Sqldiag.exe2005.90.1554.0960,28804-Oct-200616:06x86
Sqlservr.exe2005.90.1554.028,791,64004-Oct-200616:08x86

État

Ce comportement est voulu par la conception. Ce problème dans SQL Server 2005 restera à l’avenir les versions de SQL Server.

SQL Server 2008

Pour plus d’informations sur les fichiers modifiés et pour plus d’informations sur les conditions requises pour appliquer le package de mise à jour cumulative qui contient le correctif qui est décrit dans cet article de la Base de connaissances Microsoft, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
956717 Cumulative mise à jour 1 pour SQL Server 2008

SQL Server 2005

Si vous appliquez ce correctif pour SQL Server 2005 avant de migrer une application à partir de SQL Server 2000 vers SQL Server 2005, ce correctif permettra l’application fonctionne avec SQL Server 2005. Par exemple, vous devriez obtenir les données dans un ordre de tri spécifique. Pour ce faire, vous devez utiliser la clause ORDER BY dans l’instruction SELECT que vous utilisez pour interroger par la vue. Après avoir appliqué ce correctif logiciel et faire migrer l’application, vous obtiendrez un résultat de requête triée.

Toutefois, ce correctif est uniquement une solution temporaire. Après la migration de l’application, vous devez mettre à jour l’application de fonctionner correctement avec le nouveau comportement dans SQL Server 2005.

Une fois que vous mettez à jour l’application, vous pouvez désactiver l’indicateur de trace 168 et modifier le niveau de compatibilité de la base de données à 90.

Références

Pour plus d’informations sur la liste des versions disponibles après la publication de SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
956909 the SQL Server versions 2008 publiées après SQL Server 2008
Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
935897 un modèle de service incrémentiel est disponible auprès de l’équipe SQL Server pour proposer des correctifs pour les problèmes signalés
Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
822499 Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle de Microsoft SQL Server
Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft
Pour plus d’informations sur le niveau de compatibilité d’une base de données dans SQL Server 2005, visitez le site Web MSDN suivant :Pour plus d’informations sur la configuration des options de démarrage du serveur dans SQL Server 2005, visitez le site Web MSDN suivant :Pour plus d’informations sur la façon d’utiliser les options de démarrage du service SQL Server, visitez le site Web MSDN suivant :
Propriétés

ID d'article : 926292 - Dernière mise à jour : 17 janv. 2017 - Révision : 1

Commentaires