Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptômes

Supposez que vous disposez d’une requête qui effectue des opérations de type chaîne (par exemple, concaténation) sur des colonnes CHAR ou VARCHAR dans Microsoft SQL Server 2014, 2016 et 2017. Prenons l’exemple du scénario suivant :

  • Vous concaténez des colonnes avec différents classements qui leur sont attribués.

  • Ces classements ne sont pas compatibles entre eux. Par exemple, vous essayez de concaténer une colonne assemblées en tant que Latin1_General_CI_AI de Latin1_General_BIN.

  • Le résultat final de la concaténation est attribué à un assemblage spécifique (y compris « database_default ») dans le cadre de la résolution des conflits de classement.

Dans ce scénario, SQL Server peut retourner une assertion de vente au détail indiquant « une comparaison non valide en raison de l’absence d’assemblage » et vous pouvez recevoir des messages d’erreur similaires à ce qui suit :

Emplacement : typinfo. cpp :LineNumber Expression : false SPID : SPID ID de processus : ProcessID Description : comparaison non valide en raison de l’absence d’assemblage.

MSG 3624, niveau 20, état 1, ligne LineNumber La vérification de l’assertion du système a échoué. Pour plus d’informations, consultez le journal des erreurs SQL Server. En règle générale, un échec d’assertion est lié à un bogue logiciel ou à des données endommagées. Pour vérifier la corruption de la base de données, envisagez d’exécuter DBCC CHECKDB. Si vous avez accepté d’envoyer des vidages à Microsoft lors de l’installation, un mini-vidage sera envoyé à Microsoft. Il est possible qu’une mise à jour soit disponible à partir de Microsoft dans le Service Pack le plus récent ou dans un correctif du support technique.

MSG 596, niveau 21, état 1, ligne LineNumber Ne peut pas continuer l’exécution, car la session est en état d’arrêt.

MSG 0, niveau 20, état 0, ligne LineNumber

Une erreur sérieuse s’est produite sur la commande actuelle.  Les résultats éventuels doivent être supprimés.

Cause

Lors de l’étape d’optimisation de la requête, SQL Server tente de calculer les cardinales sur les résultats intermédiaires de diverses phases de la requête, par exemple la concaténation. Étant donné que la résolution des conflits de classement intervient en tout lieu, l’optimiseur de requête risque de ne pas être consciente de celle-ci et tente d’effectuer le calcul de la cardinalité de concaténation sur une entrée avec un assemblage en conflit.

Résolution

Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

       Mise à jour cumulative 8 pour SQL Server 2016 SP1  

       Mise à jour cumulative 4 pour SQL Server 2017

       Mise à jour cumulative 9 pour SQL Server 2014 SP2

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :

Dernière mise à jour cumulative pour SQL Server 2016

Dernière mise à jour cumulative pour SQL Server 2017

Dernière mise à jour cumulative pour SQL Server 2014

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références

Apprenez-en davantage sur la terminologieutilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.