CORRECTIF : des résultats à partir d'une requête parallèle qui utilise une UNION et des variables ou des paramètres incorrects

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: 822746
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Vous pouvez recevoir des résultats incorrects si votre requête respecte les conditions suivantes :
  • La requête spécifie une UNION ou une UNION ALL de deux ou plusieurs entrées.
  • Dans L'UNION, au moins une des instructions SELECT renvoient la valeur paramètre ou la variable (c'est-à-dire qu'il utilise cette valeur dans la liste de sélection et non dans l'emplacement clause).
  • La colonne de renvoyer la valeur variable ou un paramètre est en cours utilisée qu'une jointure ou la colonne regroupement immédiatement supérieur dans l'arborescence de la requête et cet opérateur est exécuté en parallèle, nécessitant que le flux de données être partitionné basée sur les jointure ou les colonnes de regroupement.

La requête suivante est un exemple d'un sujet à ce problème :
DECLARE @a SMALLINTSET @a=1SELECT yy, COUNT(*) FROM ( 	SELECT productid xx, @a yy FROM products	UNION ALL	SELECT productid xx, unitsinstock yy FROM products     ) zzGROUP BY yy
note Cette requête n'est pas un scénario reproduce pour la base de données Les Comptoirs. Il s'uniquement il affiche le formulaire et la syntaxe d'une requête hypothétique sur une table hypothétique nommée produits .
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 des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en coordinated universal temps (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 bytes  Console.exe         25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Dbmslpcn.dll        25-Apr-2003  02:12                    786,432 bytes  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296 bytes  Distmdl.mdf   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql   23-Jun-2003  22:40  2000.80.837.0   1,557,052 bytes  Dtsui.dll           23-Jun-2003  22:40  2000.80.837.0     639,552 bytes  Dtswiz.dll          24-Apr-2003  02:51                    747,927 bytes  Instdist.sql   03-May-2003  01:56                      1,581 bytes  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll         01-Apr-2003  02:07                      1,873 bytes  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll        07-May-2003  20:41  2000.80.819.0      25,144 bytes  Opends60.dll        02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll        22-May-2003  22:57                     19,195 bytes  Qfe469571.sql   12-Jun-2003  16:37                  1,083,989 bytes  Replmerg.sql   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll        08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll         05-May-2003  00:05                  1,085,874 bytes  Replsys.sql   01-Jun-2003  01:01  2000.80.818.0     492,096 bytes  Semobj.dll          31-May-2003  18:27  2000.80.818.0     172,032 bytes  Semobj.rll   29-May-2003  00:29                    115,944 bytes  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360 bytes  Sqldmo.dll          07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe       19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll   02-Jul-2003  00:18  2000.80.834.0     180,736 bytes  Sqlmap70.dll        08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll        23-Jun-2003  22:40  2000.80.837.0   7,553,105 bytes  Sqlservr.exe        08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll          25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Ssmslpcn.dll        01-Jun-2003  01:01  2000.80.818.0      82,492 bytes  Ssnetlib.dll        01-Jun-2003  01:01  2000.80.818.0      25,148 bytes  Ssnmpn70.dll        01-Jun-2003  01:01  2000.80.818.0     158,240 bytes  Svrnetcn.dll        31-May-2003  18:59  2000.80.818.0      76,416 bytes  Svrnetcn.exe        30-Apr-2003  23:52  2000.80.816.0      45,132 bytes  Ums.dll             02-Jul-2003  00:19  2000.80.834.0      98,816 bytes  Xpweb70.dll       			
note raison de dépendances entre fichiers, la dernière fonctionnalité ou correctif qui contient les fichiers peut également contenir des fichiers.
Contournement
Un de la configuration requise pour provoquer ce scénario des résultats incorrects est que la requête sélectionne un plan parallèle. Pour contourner ce problème, vous pouvez désactiver le parallélisme soit au niveau de requête en utilisant un « MAXDOP 1 « conseil (voir la documentation en ligne de SQL Server pour plus d'informations), ou à un niveau serveur en définissant le paramètre de configuration « max degré de parallélisme » sur 1 (en utilisant la procédure sp_configure stockée).
Statut
Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés au début de cet article. Ce problème a été corrigé dans Microsoft SQL Server 2000 Service Pack 4.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 822746 - Dernière mise à jour : 02/27/2014 02:15:28 - Révision : 7.4

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

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB822746 KbMtfr
Commentaires