Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) comme un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif du Service Pack 2 SQL Server 2008 R2 antérieur.

Symptômes

Vous pouvez recevoir des résultats incorrects lorsque vous exécutez une requête dans Microsoft SQL Server 2008 R2 SP2 ou dans Microsoft SQL Server 2012 lorsque les conditions suivantes sont remplies :

  • La requête utilise une clause Cross Apply sur le résultat d’une clause join complète .

  • Les données de la table sont fournies en appelant une fonction définie par l’utilisateur dans la clause join complète .

  • La fonction accepte un nom de colonne comme paramètre et renvoie les résultats sous la forme d’une table.

Par exemple, vous exécutez une requête qui ressemble à ce qui suit :

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s  

Remarque Ce problème ne se produit pas dans Microsoft SQL Server 2012.

Résolution

Informations sur les mises à jour cumulatives

Mise à jour cumulative 7 pour SQL Server 2012

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 7. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2012, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2823247 Package de mise à jour cumulative 7 pour SQL Server 2012Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2012. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2692828 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012

Mise à jour cumulative 3 pour SQL Server 2012 SP1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 3. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2012 SP1, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2812412 Package de mise à jour cumulative 3 pour SQL Server 2012 Service Pack 1Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2012 SP1. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2772858 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012 Service Pack 1

Mise à jour cumulative 5 pour SQL Server 2008 R2 SP2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 5. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 SP 2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2797460 Package de mise à jour cumulative 5 pour SQL Server 2008 R2 Service Pack 2Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008 R2 SP 2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2730301 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 2

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.

Solution de contournement

Pour contourner ce problème, utilisez la clause join de fusion complète au lieu d’une clause join complète . Par exemple, vous pouvez modifier la requête mentionnée dans la section « symptômes » pour que la requête ressemble à ce qui suit :

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL MERGE JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s 

Informations supplémentaires

Pour plus d’informations sur l’utilisation de la clause Cross Apply , accédez au site Web Microsoft TechNet suivant :

Informations générales sur l’utilisation de la clause CROSS APPLY

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×