Microsoft distribue les correctifs Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2 en un seul fichier téléchargeable. Étant donné que les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008 ou de SQL Server 2008 R2.
Symptômes
Supposons qu’un instance nommé dans Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2 soit installé sur un serveur. Lorsque vous exécutez une requête CTE (Common table expression) qui utilise la fonction Freetexttable ou Containstable sur une vue indexée, la requête CTE échoue et une exception de violation d’accès se produit. En outre, le message d’erreur suivant s’affiche :
Remarque
Msg 0, Niveau 11, État 0, Ligne 0
Une grave erreur s’est produite sur la commande actuelle. Les résultats, s’il y en a, doivent être ignorés.
Par exemple, l’exception de violation d’accès se produit lorsque vous exécutez le code suivant :
WITH CTE AS (select [Key] as Key, [Rank] from FREETEXTTABLE(< indexed view name >, *, '< search string >')) SELECT * FROM CTE
Résolution
Informations sur les mises à jour cumulatives
SQL Server 2008 Service Pack 2
Le correctif pour résoudre ce problème a été publié pour la première fois dans la mise à jour cumulative 4 pour SQL Server 2008 Service Pack 2. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft.
2527180 Package de mise à jour cumulative 4 pour SQL Server 2008 Service Pack 2Note Comme les builds sont cumulatives, chaque nouvelle version de correctif contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008. Microsoft vous recommande d’envisager d’appliquer la publication 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 :
2402659 Les versions de SQL Server 2008 publiées après SQL Server Service Pack 2 de Microsoft SQL Server 2008 ont été créées pour des Service Packs spécifiques SQL Server. Vous devez appliquer un correctif logiciel de SQL Server 2008 Service Pack 2 à une installation de SQL Server 2008 Service Pack 2. Par défaut, tout correctif logiciel fourni dans un Service Pack SQL Server est inclus dans le Service Pack SQL Server suivant.
SQL Server 2008 R2
Le correctif pour résoudre ce problème a été publié pour la première fois dans la mise à jour cumulative 4. Pour plus d’informations sur la procédure d’obtention de ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft.
2345451 package de mise à jour cumulative 4 pour SQL Server 2008 R2 Remarque Comme les builds sont cumulatives, chaque nouvelle version de correctif contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’envisager d’appliquer la version la plus récente du correctif 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 :
981356 Builds SQL Server 2008 R2 publiées après SQL Server 2008 R2
Solution de contournement
Pour contourner ce problème, appliquez l'une des méthodes suivantes :
- Utilisez un affichage, une table temporaire ou une variable de table au lieu d’une CTE pour stocker les résultats intermédiaires.
- Mettez à jour la requête pour utiliser une table dérivée ou une sous-requête. Cela élimine le besoin d’utiliser un CTE.
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Références
Pour plus d’informations sur l’utilisation des expressions de table courantes, reportez-vous au site Web de Microsoft à l’adresse suivante :
Comment utiliser les expressions de table courantes Pour plus d’informations sur la fonction Freetexttable (Transact-SQL), reportez-vous au site web de Microsoft à l’adresse suivante :
FREETEXTTABLE (Transact-SQL) Pour plus d’informations sur la fonction Containstable (Transact-SQL), reportez-vous au site web de Microsoft à l’adresse suivante :
CONTAINSTABLE (Transact-SQL) Pour plus d’informations sur la création de vues indexées, reportez-vous au site Web de Microsoft à l’adresse suivante :
Comment créer des vues indexées
Pour plus d’informations sur le modèle de maintenance incrémentielle 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 pour les 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’appellation pour les packages de mise à jour logicielle 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 :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft