CORRECTIF : requête de serveur lié peut renvoyer NULL si elle est effectué dans un curseur de jeu de clés

Traductions disponibles Traductions disponibles
Numéro d'article: 826860 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
BUG #: 470007 (SQL Server 8.0)
Agrandir tout | Réduire tout

Sommaire

Symptômes

Une requête de serveur lié peut renvoyer NULL pour les colonnes dans son résultat définir si les conditions suivantes sont remplies :
  • La requête est exécutée par l'intermédiaire d'un curseur keyset.
  • Une jointure externe est effectuée sur tables 2 ou plus à distance.
  • Un nom de partie 4 est utilisé pour chaque table à distance.
  • Toutes les tables distants associés à la jointure externe ont des index uniques.
  • Aucune ligne n'est renvoyés dans les tables internes de la clause OUTER JOIN.
Par exemple, supposons que vous possédez les données suivantes :
TableA
col1 col2
---- ----
   1    1

TableB
col1 col2
---- ----
   2    2
si vous exécutez la requête suivante par l'intermédiaire d'un curseur keyset, ce problème peut se produire :
SELECT * 
FROM rmtsvr.ownr.dbname.tableA A LEFT OUTER JOIN rmtsvr.ownr.dbname.tableB B
on A.col1=B.col1 and A.col2=B.col2

Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft SQL Server 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
290211 Comment obtenir le dernier pack de service SQL Server 2000

Informations sur le correctif

La version anglaise de ce correctif dispose les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'outil Date et heure du Panneau de configuration.
   Date         Time    Version           Size     File name
   --------------------------------------------------------------------
   31-May-2003  18:45   2000.80.818.0     78,400   Console.exe
   25-Jun-2003  01:01   2000.80.818.0     33,340   Dbmslpcn.dll
   25-Apr-2003  02:12                    786,432   Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296   Distmdl.mdf
   30-Jan-2003  01:55                        180   Drop_repl_hotfix.sql
   23-Jun-2003  22:40   2000.80.837.0  1,557,052   Dtsui.dll
   23-Jun-2003  22:40   2000.80.837.0    639,552   Dtswiz.dll
   24-Apr-2003  02:51                    747,927   Instdist.sql
   03-May-2003  01:56                      1,581   Inst_repl_hotfix.sql
   08-Feb-2003  06:40   2000.80.765.0     90,692   Msgprox.dll
   01-Apr-2003  02:07                      1,873   Odsole.sql
   05-Apr-2003  01:46   2000.80.800.0     62,024   Odsole70.dll
   07-May-2003  20:41   2000.80.819.0     25,144   Opends60.dll
   07-May-2003  18:47                    132,096   Opends60.pdb
   02-Apr-2003  21:48   2000.80.796.0     57,904   Osql.exe
   02-Apr-2003  23:15   2000.80.797.0    279,104   Pfutil80.dll
   04-Aug-2003  18:17                    550,780   Procsyst.sql
   22-May-2003  22:57                     19,195   Qfe469571.sql
   11-Jul-2003  17:04                  1,084,147   Replmerg.sql
   04-Apr-2003  21:53   2000.80.798.0    221,768   Replprov.dll
   08-Feb-2003  06:40   2000.80.765.0    307,784   Replrec.dll
   11-Jul-2003  16:56                  1,085,925   Replsys.sql
   29-Jul-2003  20:13   2000.80.819.0    492,096   Semobj.dll
   31-May-2003  18:27   2000.80.818.0    172,032   Semobj.rll
   05-Aug-2003  21:06                    127,884   Sp3_serv_uni.sql
   01-Jun-2003  01:01   2000.80.818.0  4,215,360   Sqldmo.dll
   07-Apr-2003  17:44                     25,172   Sqldumper.exe
   19-Mar-2003  18:20   2000.80.789.0     28,672   Sqlevn70.rll
   02-Jul-2003  00:18   2000.80.834.0    180,736   Sqlmap70.dll
   08-Feb-2003  06:40   2000.80.765.0     57,920   Sqlrepss.dll
   07-Aug-2003  19:11   2000.80.850.0  7,598,164   Sqlservr.exe
   07-Aug-2003  19:11                 12,755,968   Sqlservr.pdb
   25-Jul-2003  21:44   2000.80.845.0    590,396   Sqlsort.dll
   08-Feb-2003  06:40   2000.80.765.0     45,644   Sqlvdi.dll
   25-Jun-2003  01:01   2000.80.818.0     33,340   Ssmslpcn.dll
   01-Jun-2003  01:01   2000.80.818.0     82,492   Ssnetlib.dll
   01-Jun-2003  01:01   2000.80.818.0     25,148   Ssnmpn70.dll
   01-Jun-2003  01:01   2000.80.818.0    158,240   Svrnetcn.dll
   31-May-2003  18:59   2000.80.818.0     76,416   Svrnetcn.exe
   30-Apr-2003  23:52   2000.80.816.0     45,132   Ums.dll
   30-Apr-2003  23:52                    132,096   Ums.pdb
   02-Jul-2003  00:19   2000.80.834.0     98,816   Xpweb70.dll
   23-Jun-2003  22:40   2000.80.837.0  1,557,052   Dtsui.dll
   23-Jun-2003  22:40   2000.80.837.0    639,552   Dtswiz.dll
   02-Apr-2003  21:48   2000.80.796.0     57,904   Osql.exe
   02-Apr-2003  23:15   2000.80.797.0    279,104   Pfutil80.dll
   29-Jul-2003  20:13   2000.80.819.0    492,096   Semobj.dll
   31-May-2003  18:27   2000.80.818.0    172,032   Semobj.rll
   01-Jun-2003  01:01   2000.80.818.0  4,215,360   Sqldmo.dll
   07-Apr-2003  17:44                     25,172   Sqldumper.exe
   01-Jun-2003  01:01   2000.80.818.0    158,240   Svrnetcn.dll
   31-May-2003  18:59   2000.80.818.0     76,416   Svrnetcn.exe

note En raison des dépendances de fichiers, la fonctionnalité qui contient ces fichiers ou correctif plus récent peut également contenir des fichiers supplémentaires.


note Ce correctif doit être appliqué à un serveur local, pas à un serveur distant.

Contournement

Pour contourner ce problème, appliquez l'une des méthodes suivantes :
  • Utiliser un curseur statique au lieu d'un curseur keyset.
  • Utiliser une requête SQL directe au lieu d'une requête de nom de la partie 4. Pour ce faire, vous pouvez utiliser une des fonctions Transact-SQL suivantes :
    • OPENQUERY
    • OPENROWSET
  • Utiliser une requête ad-hoc au lieu d'un curseur.
  • Si vous pouvez modifier des index uniques à index non unique dans les tables à distance. Cela remplacer le type de curseur statique.

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 Microsoft SQL Server 2000 Service Pack 4.

Plus d'informations

Pour plus d'informations, 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

Propriétés

Numéro d'article: 826860 - Dernière mise à jour: lundi 24 février 2014 - Version: 8.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Édition Développeur
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Édition Personelle
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Mots-clés : 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB826860 KbMtfr
Traduction 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: 826860
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.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com