Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

CORRECTIF : vous recevez un résultat incorrect lorsque vous exécutez une requête qui utilise l'opérateur LIKE dans SQL Server 2005

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 959019
Symptômes
Envisagez le scénario suivant. Dans Microsoft SQL Server 2005, vous exécutez une requête qui utilise l'opérateur LIKE. Le plan d'exécution de la requête utilise la fonction GetRangeThroughConvert. Lorsque vous exécutez la requête, vous pouvez recevoir un résultat incorrect. Par exemple, le plan d'exécution de cette requête peut ressembler à ceci.
|--Nested Loops(Inner Join, OUTER REFERENCES:([Expr1010], [Expr1011], |[Expr1012])) |--Merge Interval | |--Concatenation | |--Compute Scalar(DEFINE:(([Expr1005],[Expr1006],[Expr1004])=GetRangeThroughConvert(N'P08.89',NULL,(22)))) | | |--Constant Scan | |--Compute Scalar(DEFINE:(([Expr1008],[Expr1009],[Expr1007])=GetRangeThroughConvert(NULL,N'P08.8?',(10)))) | |--Constant Scan |--Index Seek(OBJECT:([TestLikeBug].[dbo].[Projects].[IX_Projects]), SEEK:( [TestLikeBug].[dbo].[Projects].[ProjectNumber] > [Expr1010] AND [TestLikeBug].[dbo].[Projects].[ProjectNumber] < [Expr1011]), WHERE:(CONVERT_IMPLICIT(nvarchar(12),[TestLikeBug].[dbo].[Projects].[ProjectNumber],0) like N'P08.89%') ORDERED FORWARD)
Cause
Ce problème se produit parce que SQL Server génère une condition de plage incorrect pour l'opérateur LIKE.
Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack pour SQL Server 2005. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
913089 Comment obtenir le dernier pack service pour SQL Server 2005
Statut
Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans SQL Server 2005 Service Pack 3.
Plus d'informations
Pour plus d'informations sur la terminologie mise à jour logicielles, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 959019 - Dernière mise à jour : 12/16/2008 00:47:58 - Révision : 1.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbsql2005engine kbtshoot kbexpertiseadvanced kbfix kbbug KB959019 KbMtfr
Commentaires