DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 936223 - Dernière mise à jour: mardi 2 février 2010 - Version: 2.0

 
Bogue : 50001186 (correctif SQL)

Sommaire

Symptômes

Envisagez le scénario suivant. Dans Microsoft SQL Server 2005, vous créez un serveur lié à l'aide du fournisseur OLE DB du client natif SQL (SQLNCLI). Le serveur lié est lié à un serveur sur lequel Microsoft SQL Server 2000. Dans ce scénario, vous recevez les messages d'erreur suivant lorsque vous exécutez une requête sur le serveur lié :
Message d'erreur 1
Msg 8180, niveau 16, état 1, ligne 1
Instructions ne peuvent pas être préparées.
Message d'erreur 2
Msg 107, niveau 16, état 2, ligne 1
Le préfixe de colonne ' <column_prefix_name> ' ne correspond pas à un nom de table ni au nom d'alias utilisés dans la requête.


Remarque Ce problème se produit également dans SQL Server 2008. Si vous rencontrez ce problème lorsque vous vous connectez à un serveur SQL Server 2000 dans SQL Server 2008, vous devez activer l'indicateur de trace 4112 pour résoudre ce problème. Pour plus d'informations, consultez la section «Plus d'informations».

Cause

Ce problème se produit car SQL Server 2005 génère un plan d'exécution qui a une requête distante. SQL Server 2005 doit exécuter la requête à distance par rapport à SQL Server 2000 pour récupérer les données requises. SQL Server 2000 ne peut pas traiter la requête à distance. Par conséquent, l'erreur 107 se produit dans SQL Server 2000. Ensuite, l'erreur 107 est retournée à SQL Server 2005. Par conséquent, l'erreur 107 se produit dans SQL Server 2005 et erreur 8180 se produit dans SQL Server 2005.

Résolution

Informations de mise à jour cumulative

Le correctif de ce problème a été publié tout d'abord dans la mise à jour cumulative 2. Pour plus d'informations sur la façon d'obtenir ce package de mise à jour cumulatives 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 :
936305  (http://support.microsoft.com/kb/936305/LN/ ) Package de mise à jour cumulative 2 pour SQL Server 2005 Service Pack 2
Remarque Les versions étant cumulatifs, chaque nouvelle version de correctif contient l'intégralité des correctifs et tous les correctifs de sécurité inclus avec la précédente de SQL Server 2005 version du correctif. Microsoft vous recommande d'envisager l'application de la dernière version de 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  (http://support.microsoft.com/kb/937137/LN/ ) Versions de SQL Server 2005 publiées après SQL Server 2005 Service Pack 2
Correctifs Microsoft SQL Server 2005 sont créés pour les service packs pour SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2005 Service Pack 2 à une installation de SQL Server 2005 Service Pack 2. Par défaut, aucun correctif fourni dans un service pack SQL Server est inclu dans le prochain service pack SQL Server.

Contournement

Pour contourner ce problème, utilisez le fournisseur Microsoft OLE DB pour ODBC pour créer le serveur lié par rapport à SQL Server 2000.

Statut

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

Plus d'informations

Du package de mise à jour cumulative (version 3175) pour SQL Server 2005 SP2 et SQL Server 2008, les deux introduire 4112 l'indicateur de trace. Après avoir appliqué le package de mise à jour cumulative (version 3175) pour SQL Server 2005 SP2, vous devez activer l'indicateur de trace 4112 pour résoudre ce problème. Pour informations sur la façon d'activer un indicateur de trace dans SQL Server 2005, voir la section «Notes» du site Web MSDN (Microsoft Developer Network) suivant :
http://msdn2.microsoft.com/en-us/library/ms188396.aspx (http://msdn2.microsoft.com/en-us/library/ms188396.aspx)

Étapes pour reproduire le problème

  1. Démarrez SQL Server Management Studio, puis connectez à une instance de SQL Server 2005.
  2. Créez une nouvelle requête, puis exécutez les instructions suivantes.
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>', 
    @provider = 'SQLNCLI', 
    @srvproduct = '', 
    @datasrc = '<InstanceName>', 
    @catalog = '<DatabaseName>' 
    
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC' 
    ,@optvalue = 'TRUE'
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC OUT' 
    ,@optvalue = 'TRUE'
    
    
    DECLARE @supervisorID varchar(40)
    set @supervisorID = 'Volume Discount'
    
    SELECT DISTINCT J.STOR_ID
    FROM   [<LinkedServerName>].[<DatabaseName>].DBO.DISCOUNTS J
    WHERE  J.DISCOUNTTYPE = @supervisorID
           AND J.DISCOUNT = (SELECT MAX(B.DISCOUNT)
                             FROM   [<LinkedServerName>].<DatabaseName>.DBO.DISCOUNTS B
                             WHERE  B.DISCOUNTTYPE = J.DISCOUNTTYPE)
    
    GO
    
    Notes
    • <LinkedServerName>est un espace réservé pour le nom du serveur lié.
    • <InstanceName>est un espace réservé pour le nom d'instance pour le serveur lié.
    • <DatabaseName>est un espace réservé pour le nom de la base de données.
Après avoir exécuté ces instructions, les messages d'erreur mentionnés dans la section «Symptômes».

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard 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 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Mots-clés : 
kbmt kbsql2005engine kbexpertiseadvanced kbfix kbpubtypekc kbqfe KB936223 KbMtfr
Traduction automatiqueTraduction automatique
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: 936223  (http://support.microsoft.com/kb/936223/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store