CORRECTIF : Message d’erreur lorsque vous exécutez une requête sur une vue dans SQL Server 2005 : « une erreur s’est produite lors de l’exécution du lot. »

N° de bogue : 50002350 (correctif SQL)
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.

Symptômes

Envisagez le scénario suivant. Dans Microsoft SQL Server 2005, vous créez une vue qui possède l’attribut view_metadata activé. Ensuite, vous exécutez une requête sur la vue. Dans ce scénario, le message d’erreur suivant peut s’afficher :
Une erreur s’est produite lors de l’exécution du traitement par lots. Message d’erreur : erreur irrécupérable de connexion interne.
Ce problème peut se produire si une des conditions suivantes est remplie :
  • Vous définissez l’option NO_BROWSETABLE on.
  • Vous spécifiez la clause FOR BROWSE pour la requête.

Résolution

Le correctif de ce problème a été publié dans 6 de mise à jour Cumulative. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2005 Service Pack 2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
946608 Cumulative mise à jour 6 pour SQL Server 2005 Service Pack 2
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente de SQL Server 2005 version du correctif. Microsoft vous recommande 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 :
937137 le SQL Server 2005 versions publiées après la publication de SQL Server 2005 Service Pack 2
Les correctifs Microsoft SQL Server 2005 sont créés pour les packs de service spécifiques de SQL Server. Vous devez appliquer un correctif SQL Server 2005 Service Pack 2 à une installation de SQL Server 2005 Service Pack 2. Par défaut, tout correctif qui est fourni dans un service pack de SQL Server est inclus dans le prochain service pack de SQL Server.

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes :
  • N’utilisez pas l’attribut view_metadata pour la vue.
  • Utilisez des curseurs côté client statiques pour exécuter la requête dans votre application.
  • Définissez l’option NO_BROWSETABLE Off à la première ligne de la procédure stockée.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Après avoir installé le package de mise à jour cumulative 6, vous devez également activer l’indicateur de trace 210 du correctif à mettre en oeuvre. Nous vous conseillons de l’indicateur de trace en tant que paramètre de démarrage. Toutefois, vous pouvez également activer l’indicateur de trace dynamiquement en exécutant une commande semblable à la suivante :
DBCC TRACEON(210,-1) Go DBCC FREEPROCCACHE Go
En outre, vous devez libérer le cache afin que tous les plans de mise en cache que le problème a affecté les recompiler et les recharger à l’aide de l’option indicateur de trace.

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 :
946608 Cumulative mise à jour 6 pour SQL Server 2005 Service Pack 2

Procédure pour reproduire le problème

  1. Démarrez SQL Server Management Studio et puis créer une nouvelle requête.
  2. Exécutez les instructions Transact-SQL suivantes.
    CREATE DATABASE db1GO

    USE db1
    GO

    CREATE TABLE t1 (b INT PRIMARY KEY, B INT)
    CREATE TABLE t2 (b INT PRIMARY KEY)
    GO

    INSERT INTO t1 VALUES (1,NULL)
    INSERT INTO t1 VALUES (2,NULL)
    GO

    CREATE VIEW v2
    WITH VIEW_METADATA
    AS
    SELECT * FROM t2
    GO

    SET NO_BROWSETABLE ON
    SELECT t1.b
    FROM t1 LEFT JOIN v2 ON t1.b = v2.b
    GO

Références

Pour plus d’informations sur la liste des versions disponibles après SQL Server Service Pack 2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
937137 le SQL Server 2005 versions publiées après la publication de SQL Server 2005 Service Pack 2
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 la façon d’obtenir SQL Server 2005 Service Pack 2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
913089 comment obtenir le dernier service pack pour SQL Server 2005
Pour plus d’informations sur les nouvelles fonctionnalités et améliorations dans SQL Server 2005 Service Pack 2, visitez le site Web de Microsoft à l’adresse suivante :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 :
Packages de mises à jour 822499 nouveau schéma d’appellation pour les logiciels 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
Propriétés

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

Commentaires