CORRECTIF : la fonction système @ @ERROR peut retourner une valeur incorrecte lorsque vous exécutez une instruction Transact-SQL qui utilise un plan d'exécution parallèle dans SQL Server 2000 32 bits ou dans SQL Server 2000 64 bits

Traductions disponibles Traductions disponibles
Numéro d'article: 890925 - Voir les produits auxquels s'applique cet article
Bogue #: 471094 (SQL Server 8.0)



Agrandir tout | Réduire tout

Sommaire

Contenu de l'article

Résumé

Cet article décrit suivants concernant cette version de correctif logiciel :
  • Problèmes résolus par ce package de correctifs.
  • Conditions préalables à l'installation du correctif logiciel ;
  • Si vous devez redémarrer votre ordinateur après avoir installé le package de correctifs.
  • Si le package de correctifs est remplacé par un autre package de correctifs.
  • Si vous devez apporter les modifications du Registre.
  • Les fichiers qui sont contenus dans le package de correctifs.

Symptômes

Lorsqu'une instruction Transact-SQL est exécutée en utilisant un plan d'exécution parallèle, Microsoft SQL Server 2000 peut ne pas définir la valeur de la fonction système @ @Error correctement lorsque l'instruction Transact-SQL échoue ou lorsque SQL Server détecte une erreur. Si vous examinez la valeur qui est renvoyée par la fonction système @ @Error immédiatement après que l'instruction Transact-SQL s'exécute, vous verrez que la fonction @ @Error a renvoyé une valeur zéro même si la requête a provoqué une erreur non nulle.

Par exemple, l'instruction Transact-SQL suivante peut exécuter toujours l'instruction DELETE même si l'instruction INSERT échoue lorsqu'elle utilise un plan d'exécution parallèle :
INSERT INTO table2 SELECT * FROM table1
IF ( @@ERROR = 0 )
  DELETE FROM table1
plans d'exécution parallèle Remarque se produisent uniquement sur les instances de SQL Server qui sont exécutent sur un ordinateur équipé de deux ou plusieurs processeurs logiques.

Pour obtenir une liste de correctifs logiciels antérieurs, consultez la section « Microsoft SQL Server 2000 post-Service Pack 3 ou Microsoft SQL Server 2000 postérieur au Service Pack 3 a correctifs » dans l'article suivant de la base de connaissances Microsoft :
290211 Comment obtenir le dernier pack de service SQL Server 2000


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

Conditions préalables

Ce correctif nécessite SQL Server 2000 Service Pack 3 (SP3). Pour savoir comment obtenir SQL Server 2000 SP3, consultez l'article suivant dans la Base de connaissances :
290211 Comment obtenir le dernier pack de service SQL Server 2000
En outre, ce correctif nécessite que vous pouvez version de correctif 2000.80.977 installé SQL Server 2000. Pour plus d'informations sur SQL Server 2000 SP3a après correctif génération 2000.80.977, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft. :
888007 Vous recevez un message d'erreur « le produit ne possède pas une mise à jour requis installée » lorsque vous essayez installer un correctif postérieur au Service Pack 3 SQL Server 2000




Redémarrez les informations

Vous devez redémarrer votre ordinateur après avoir appliqué ce correctif.



Informations sur le fichier de correctif

Ce correctif contient uniquement les fichiers nécessaires à la résolution des problèmes décrits dans cet article. Ce correctif peut ne pas contenir tous les fichiers nécessaires à la mise à jour complètement un produit vers la dernière version.

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.

SQL Server 2000 32 bits versions
   Date         Time   Version            Size    File name
   ---------------------------------------------------------------------
   01-Dec-2004  19:57  2000.80.993.0     664,128  Autoplt.dll      
   01-Dec-2004  19:57  2000.80.993.0      78,400  Console.exe
   01-Dec-2004  19:57  2000.80.993.0     332,352  Ctasksui.dll
   01-Dec-2004  19:57  2000.80.993.0     315,968  Custtask.dll     
   01-Dec-2004  19:57  2000.80.993.0      33,340  Dbmslpcn.dll     
   08-Apr-2004  21:42                    786,432  Distmdl.ldf
   08-Apr-2004  21:42                  2,359,296  Distmdl.mdf
   30-Sep-2003  22:55                        180  Drop_repl_hotfix.sql
   01-Dec-2004  19:57  2000.80.993.0   1,905,216  Dtspkg.dll       
   01-Dec-2004  19:57  2000.80.993.0     528,960  Dtspump.dll      
   01-Dec-2004  19:57  2000.80.993.0   1,557,052  Dtsui.dll        
   01-Dec-2004  19:57  2000.80.993.0     639,552  Dtswiz.dll       
   30-Sep-2003  22:55                    747,927  Instdist.sql
   30-Sep-2003  22:55                      1,581  Inst_repl_hotfix.sql
   01-Dec-2004  19:57  2000.80.993.0     352,828  Isqlw.exe        
   01-Dec-2004  19:57  2000.80.993.0      82,492  Itwiz.exe        
   01-Dec-2004  19:57  2000.80.993.0      90,692  Msgprox.dll      
   29-Oct-2004  08:16  8.11.41022.0      226,304  Mssdi98.dll      
   01-Dec-2004  19:57  2000.80.993.0      62,024  Odsole70.dll     
   01-Dec-2004  19:58  2000.80.993.0      25,144  Opends60.dll     
   01-Dec-2004  19:57  2000.80.993.0      57,904  Osql.exe         
   01-Dec-2004  19:57  2000.80.993.0     279,104  Pfutil80.dll     
   30-Sep-2003  22:48                    550,780  Procsyst.sql
   08-Apr-2004  21:42                     12,305  Qfe469315.sql
   08-Apr-2004  21:42                     19,195  Qfe469571.sql
   27-Aug-2004  00:13                      5,157  Qfe472197.sql
   01-Dec-2004  19:57  2000.80.993.0     143,940  Qrdrsvc.exe      
   01-Dec-2004  18:49                  1,106,776  Replmerg.sql
   01-Dec-2004  19:57  2000.80.993.0     221,768  Replprov.dll     
   01-Dec-2004  19:57  2000.80.993.0     307,784  Replrec.dll      
   01-Dec-2004  18:56  2000.80.993.0     159,813  Replres.rll
   27-Aug-2004  00:13                  1,086,925  Replsys.sql
   30-Sep-2003  22:55                    986,603  Repltran.sql
   25-Nov-2004  00:04                         55  Repl_uninstall.sql
   01-Dec-2004  19:57  2000.80.993.0     287,304  Rinitcom.dll     
   01-Dec-2004  19:57  2000.80.993.0      78,416  Sdiclnt.dll      
   01-Dec-2004  19:57  2000.80.993.0      66,112  Semmap.dll       
   01-Dec-2004  19:57  2000.80.993.0      57,916  Semnt.dll        
   01-Dec-2004  19:57  2000.80.993.0     492,096  Semobj.dll       
   01-Dec-2004  19:20  2000.80.993.0     172,032  Semobj.rll
   01-Dec-2004  19:57  2000.80.993.0      53,832  Snapshot.exe     
   30-Sep-2003  22:48                    117,834  Sp3_serv_uni.sql
   01-Dec-2004  19:57  2000.80.993.0      28,672  Sqlagent.dll     
   01-Dec-2004  19:57  2000.80.993.0     311,872  Sqlagent.exe     
   01-Dec-2004  19:57  2000.80.993.0     168,001  Sqlakw32.dll     
   01-Dec-2004  19:57  2000.80.993.0      33,344  Sqlctr80.dll     
   01-Dec-2004  19:57  2000.80.993.0   4,215,360  Sqldmo.dll       
   01-Dec-2004  19:57                     25,172  Sqldumper.exe    
   01-Dec-2004  18:48  2000.80.993.0      28,672  Sqlevn70.rll
   01-Dec-2004  19:57  2000.80.993.0     156,224  Sqlmaint.exe     
   01-Dec-2004  19:57  2000.80.993.0     180,792  Sqlmap70.dll     
   01-Dec-2004  19:57  2000.80.993.0     188,992  Sqlmmc.dll
   01-Dec-2004  19:12  2000.80.993.0     479,232  Sqlmmc.rll
   01-Dec-2004  19:57  2000.80.993.0     401,984  Sqlqry.dll
   01-Dec-2004  19:57  2000.80.993.0      57,920  Sqlrepss.dll     
   01-Dec-2004  19:58  2000.80.993.0   7,716,945  Sqlservr.exe     
   01-Dec-2004  19:57  2000.80.993.0     590,396  Sqlsort.dll      
   01-Dec-2004  19:57  2000.80.993.0      45,644  Sqlvdi.dll       
   01-Dec-2004  19:58  2000.80.993.0     106,588  Sqsrvres.dll
   01-Dec-2004  19:58  2000.80.993.0      33,340  Ssmsgnet.dll     
   01-Dec-2004  19:58  2000.80.993.0      33,340  Ssmslpcn.dll     
   01-Dec-2004  19:58  2000.80.993.0      33,340  Ssmsqlgc.dll     
   01-Dec-2004  19:58  2000.80.993.0      82,492  Ssnetlib.dll     
   01-Dec-2004  19:58  2000.80.993.0      25,148  Ssnmpn70.dll     
   01-Dec-2004  19:58  2000.80.993.0     123,456  Stardds.dll
   01-Dec-2004  19:58  2000.80.993.0     158,240  Svrnetcn.dll     
   01-Dec-2004  19:57  2000.80.993.0      76,416  Svrnetcn.exe     
   01-Dec-2004  19:58  2000.80.993.0      49,228  Ums.dll          
   01-Dec-2004  19:58  2000.80.993.0      74,304  Xplog70.dll      
   01-Dec-2004  19:58  2000.80.993.0      98,872  Xpweb70.dll
SQL Server 2000 64 bits version
   Date         Time   Version            Size    File name        Platform
   ------------------------------------------------------------------------
   02-Dec-2004  03:15  2000.80.993.0      56,832  Dbmslpcn.dll     IA-64
   02-Dec-2004  03:14  2000.80.993.0     528,960  Dtspump.dll
   02-Dec-2004  03:15  2000.80.993.0     185,856  Msgprox.dll
   29-Oct-2004  08:16  8.11.41022.0      742,912  Mssdi98.dll      IA-64
   02-Dec-2004  03:15  2000.80.993.0     151,040  Odsole70.dll     IA-64
   02-Dec-2004  03:16  2000.80.993.0      27,136  Opends60.dll     IA-64
   01-Dec-2004  20:09                     19,880  Opends60.lib
   02-Dec-2004  03:15  2000.80.993.0     148,992  Osql.exe         IA-64
   02-Dec-2004  03:15  2000.80.993.0     353,280  Qrdrsvc.exe
   02-Dec-2004  03:15  2000.80.993.0     534,528  Replprov.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     769,024  Replrec.dll
   02-Dec-2004  03:15  2000.80.993.0     650,240  Rinitcom.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     160,768  Semmap.dll       IA-64
   02-Dec-2004  03:15  2000.80.993.0     132,608  Semnt.dll        IA-64
   02-Dec-2004  03:15  2000.80.993.0      88,576  Snapshot.exe     IA-64
   02-Dec-2004  03:14  2000.80.993.0      10,240  Sqlagent.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0   1,055,232  Sqlagent.exe
   02-Dec-2004  03:15  2000.80.993.0      90,112  Sqlboot.dll      IA-64
   02-Dec-2004  03:15  2000.80.993.0      32,256  Sqlctr80.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     812,032  Sqldata.dll      IA-64
   02-Dec-2004  03:15  2000.80.993.0  13,845,504  Sqldmo.dll
   02-Dec-2004  03:15                     39,936  Sqldumper.exe    IA-64
   02-Dec-2004  03:15  2000.80.993.0     493,568  Sqlmaint.exe     IA-64
   02-Dec-2004  03:15  2000.80.993.0      23,040  Sqlmap70.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     152,064  Sqlrepss.dll     IA-64
   02-Dec-2004  03:16  2000.80.993.0  25,255,936  Sqlservr.exe     IA-64
   02-Dec-2004  03:15  2000.80.993.0     616,960  Sqlsort.dll      IA-64
   02-Dec-2004  03:15  2000.80.993.0     120,320  Sqlvdi.dll       IA-64
   02-Dec-2004  03:15  2000.80.993.0     227,328  Sqsrvres.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0      53,760  Ssmslpcn.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0      59,904  Ssmsqlgc.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     256,000  Ssnetlib.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0      20,992  Ssnmpn70.dll     IA-64
   02-Dec-2004  03:15  2000.80.993.0     430,080  Svrnetcn.dll
   02-Dec-2004  03:15  2000.80.993.0     185,856  Svrnetcn.exe     IA-64
   02-Dec-2004  03:15  2000.80.993.0     183,296  Xplog70.dll
   02-Dec-2004  03:15  2000.80.993.0     187,392  Xpweb70.dll      IA-64
   21-Jul-2004  17:38  2000.80.962.0      57,904  Osql.exe         x86
   30-Sep-2003  22:23  2000.80.760.0     269,824  Sqdedev.dll      IA-64
   01-Dec-2004  20:22  2000.80.993.0     146,432  Replres.rll
   01-Dec-2004  20:10  2000.80.993.0      19,968  Sqlevn70.rll
note En raison des dépendances de fichiers, le correctif plus récent contenant ces fichiers peut également contenir des fichiers.

Contournement

Pour contourner ce problème, appliquez l'une des méthodes suivantes :
  • Utiliser un indicateur de requête

    Ajouter l'indicateur de requête OPTION (MAXDOP 1) pour empêcher l'instruction SELECT d'utiliser un plan d'exécution parallèle.
  • Utilisez la procédure système stockée sp_configure

    Exécutez la procédure système stockée sp_configure pour définir l'option degré maximum de parallélisme à 1 pour l'instance de SQL Server. Pour définir l'option degré maximum de parallélisme , instruction exécuter le Transact-SQL suivant sur l'instance de SQL Server que vous souhaitez modifier :
    exec sp_configure 'max degree of parallelism',1
    GO
    RECONFIGURE
    GO

    Remarque Nous ne recommandons pas car il peut affecter les performances.

Statut

Microsoft a confirmé qu'il s'agit un bogue 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 sur le schéma d'appellation pour Microsoft SQL Server mises à jour, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
822499 Nouveau modèle d'affectation de noms pour les packages de correctifs logiciels Microsoft SQL Server
Pour plus d'informations sur la terminologie utilisée par Microsoft lors de la correction après leur publication de logiciels, 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: 890925 - Dernière mise à jour: vendredi 2 novembre 2007 - Version: 2.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 : 
kbmt kbquery kbsqlserv2000presp4fix kbbug kbfix kbhotfixserver kbqfe KB890925 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: 890925
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