CORRECTIF : Vous pouvez rencontrer une situation de blocage lorsque vous utilisez des variables de table dans SQL Server 2005 ou SQL Server 2008

N° de bogue : 50003816 (correctif SQL)

Microsoft distribue Microsoft SQL Server 2005 ou SQL Server 2008 résout sous la forme d’un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans la précédente SQL Server 2005 ou SQL Server 2008 version du correctif.

Symptômes

Dans Microsoft SQL Server 2005 ou Microsoft SQL Server 2008, vous pouvez rencontrer une situation de blocage lorsque vous exécutez une requête semblable à la suivante :
INSERT <table variable> EXEC <stored procedure>

Résolution

Informations de mise à jour cumulative

SQL Server 2005 Service Pack 2

Important Vous devez utiliser ce correctif si vous exécutez SQL Server 2005 Service Pack 2.


Le correctif de ce problème a été publié dans 11 de mise à jour Cumulative pour SQL Server 2005 Service Pack 2. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
958735 Cumulative mise à jour 11 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.

SQL Server 2005 Service Pack 3

Important Vous devez utiliser ce correctif si vous exécutez SQL Server 2005 Service Pack 3.


Le correctif de ce problème a été également plus loin publié en à jour Cumulative 1 pour SQL Server 2005 Service Pack 3. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
959195 Cumulative mise à jour 1 pour Microsoft SQL Server 2005 Service Pack 3
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 :
960598 le SQL Server 2005 versions publiées après la publication de SQL Server 2005 Service Pack 3
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 3 pour une installation de SQL Server 2005 Service Pack 3. 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.

SQL Server 2008

Le correctif de ce problème a été publié dans 3 de mise à jour Cumulative. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
960484 Cumulative mise à jour 3 pour SQL Server 2008
Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Nous vous recommandons 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 :
956909 the SQL Server versions 2008 publiées après SQL Server 2008

Solution de contournement

Pour contourner ce problème, utilisez la table temporaire au lieu de la variable de table.

É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

Lorsque ce problème se produit, les événements semblables aux suivants sont consignés dans le journal des erreurs SQL Server :
<Date Time> spid4s      Deadlock encountered .... Printing deadlock information<Date Time> spid4s      Wait-for graph
<Date Time> spid4s
<Date Time> spid4s Node:1

<Date Time> spid4s OBJECT: 2:416629173:0 CleanCnt:3 Mode:Sch-S Flags: 0x0
<Date Time> spid4s Grant List 1:
<Date Time> spid4s Owner:0x05617D00 Mode: Sch-S Flg:0x0 Ref:1 Life:00000000 SPID:56 ECID:0 XactLockInfo: 0x158308D4
<Date Time> spid4s SPID: 56 ECID: 0 Statement Type: INSERT Line #: 64
<Date Time> spid4s Input Buf: RPC Event: Proc [Database Id = 28 Object Id = 160719625]
<Date Time> spid4s Requested By:
<Date Time> spid4s ResType:LockOwner Stype:'OR'Xdes:0x1B907648 Mode: Sch-M SPID:56 BatchID:0 ECID:0 TaskProxy:(0x4B938364) Value:0x561f060 Cost:(N/A)
<Date Time> spid4s Deadlock monitor failed to resolve this deadlock.
Server may require restart to recover from this condition
<Date Time> spid4s Using 'dbghelp.dll' version '4.0.5'
<Date Time> spid14s deadlock-list
<Date Time> spid14s deadlock victim=process0
<Date Time> spid14s process-list
<Date Time> spid14s process id=process9285c8 waitresource=OBJECT: 2:416629173:0 waittime=12593 ownerId=1746104 transactionname=droptemp lasttranstarted=<Date Time> XDES=0x1b907648 lockMode=Sch-M schedulerid=2 kpid=8652 status=suspended spid=56 sbid=0 ecid=0 priority=0 transcount=1 lastbatchstarted=<Date Time> lastbatchcompleted=<Date Time> clientapp=WstClient hostname=PTONEBOX02 hostpid=21660 loginname=NT AUTHORITY\NETWORK SERVICE isolationlevel=read committed (2) xactid=1745726 currentdb=28 lockTimeout=4294967295 clientoption1=673316896 clientoption2=128056
<Date Time> spid14s executionStack
<Date Time> spid14s frame procname=Group.dbo.psp_GroupEntityChangesGet line=64 stmtstart=4052 stmtend=4830 sqlhandle=0x03001c0009639409d6a1a100289b00000100000000000000
<Date Time> spid14s INSERT @t_Rowset
<Date Time> spid14s EXEC @i_ReturnCode = @vc_ProcName
<Date Time> spid14s @i_ReleaseVersion = @i_ReleaseVersion
<Date Time> spid14s ,@bi_ScopeID = @bi_ScopeID
<Date Time> spid14s ,@dt_StartDatetime = @dt_StartDatetime
<Date Time> spid14s ,@dt_EndDatetime = @dt_EndDatetime
<Date Time> spid14s ,@f_ReturnAll = @f_ReturnAll
<Date Time> spid14s ,@i_MaxRows = @i_MaxRows
<Date Time> spid14s ,@f_MoreRows = @f_MoreRows OUTPUT
<Date Time> spid14s inputbuf
<Date Time> spid14s Proc [Database Id = 28 Object Id = 160719625]
<Date Time> spid14s resource-list
<Date Time> spid14s objectlock lockPartition=0 objid=416629173 subresource=FULL dbid=2 objectname=tempdb.dbo.#18D541B5 id=lock13849a80 mode=Sch-S associatedObjectId=416629173
<Date Time> spid14s owner-list
<Date Time> spid14s owner id=process9285c8 mode=Sch-S
<Date Time> spid14s waiter-list
<Date Time> spid14s waiter id=process9285c8 mode=Sch-M requestType=wait
<Date Time> spid4s **Dump thread - spid = 4, PSS = 0x059DA7D8, EC = 0x059DA7E0
<Date Time> spid4s ***Stack Dump being sent to <drive>:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\<dumpname>.txt
<Date Time> spid4s * *******************************************************************************
<Date Time> spid4s *
<Date Time> spid4s * BEGIN STACK DUMP:
<Date Time> spid4s * <Date Time> spid 4
<Date Time> spid4s *
<Date Time> spid4s * Unresolved deadlock
<Date Time> spid4s *
<Date Time> spid4s *
<Date Time> spid4s * *******************************************************************************

SQL Server 2005

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

SQL Server 2008

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 :
960484 Cumulative mise à jour 3 pour SQL Server 2008

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 : 960283 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Commentaires