Update: Ein Deadlock-Szenario auftreten, wenn Sie Tabellenvariablen in SQL Server 2005 oder SQL Server 2008 verwenden

Fehler #: 50003816 (SQL Hotfix)

Microsoft stellt Microsoft SQL Server 2005 oder SQL Server 2008 als downloadbare Datei behebt. Da die kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2005 oder SQL Server 2008 geliefert wurden.

Problembeschreibung

In Microsoft SQL Server 2005 oder Microsoft SQL Server 2008 können ein Deadlock-Szenario auftreten, wenn Sie eine Abfrage ausführen, die der folgenden ähnelt:
INSERT <table variable> EXEC <stored procedure>

Problemlösung

Kumulative Update-Informationen

SQL Server 2005 Servicepack 2

Wichtig Wenn Sie SQL Server 2005 Service Pack 2 ausführen, müssen Sie dieses Update verwenden.


Die Fehlerbehebung für dieses Problem wurde zuerst im Kumulatives Update 11 für SQL Server 2005 Service Pack 2 veröffentlicht. Für weitere Informationen zu diesem kumulativen Update-Paket, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
958735 kumulative Updatepaket 11 für SQL Server 2005 Service Pack 2
Hinweis Da diese Builds kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in früheren SQL Server 2005 enthalten waren. Microsoft empfiehlt, dass Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
937137 der SQL Server 2005 erstellt, die nach der Freigabe von SQL Server 2005 Service Pack 2 veröffentlicht wurden
Microsoft SQL Server 2005-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen SQL Server 2005 Service Pack 2-Hotfix eine Installation von SQL Server 2005 Service Pack 2 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird, in einem nächsten Servicepack für SQL Server enthalten.

SQL Server 2005 Servicepack 3

Wichtig Verwenden Sie dieses Update, wenn Sie SQL Server 2005 Service Pack 3 ausgeführt.


Die Fehlerbehebung für dieses Problem wurde auch in dem kumulativen Update 1 für SQL Server 2005 Service Pack 3 veröffentlicht. Für weitere Informationen zu diesem kumulativen Update-Paket, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
959195 kumulative Updatepaket 1 für SQL Server 2005 Service Pack 3
Hinweis Da diese Builds kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in früheren SQL Server 2005 enthalten waren. Microsoft empfiehlt, dass Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
960598 der SQL Server 2005 builds, die nach der Freigabe von SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen SQL Server 2005 Service Pack 3-Hotfix eine Installation von SQL Server 2005 Service Pack 3 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird, in einem nächsten Servicepack für SQL Server enthalten.

SQL Server 2008

Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 3 veröffentlicht. Weitere Informationen zu diesem kumulativen Updatepaket für SQL Server 2008 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
960484 kumulative Updatepaket 3 für SQL Server 2008
Hinweis Da diese Builds kumulativ sind, enthält jede neue Veröffentlichung alle Hotfixes und alle die Sicherheitsupdates, die in den vorherigen SQL Server 2008 Fix-Veröffentlichung enthalten waren. Wir empfehlen Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
956909 die SQL Server 2008 builds, die nach der Freigabe von SQL Server 2008

PROBLEMUMGEHUNG

Tabellenvariablen anstelle temporäre Tabelle, um dieses Problem zu umgehen.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Weitere Informationen

Wenn dieses Problem auftritt, Ereignisse wie die folgenden im SQL Server-Fehlerprotokoll protokolliert:
<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 * *******************************************************************************

SQLServer 2005

Weitere Dateien geändert werden und Informationen zu Komponenten das kumulative Updatepaket anwenden, das den Hotfix enthalten, der im Microsoft Knowledge Base-Artikel beschrieben, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
958735 kumulative Updatepaket 11 für SQL Server 2005 Service Pack 2

SQL Server 2008

Weitere Dateien geändert werden und Informationen zu Komponenten das kumulative Updatepaket anwenden, das den Hotfix enthalten, der im Microsoft Knowledge Base-Artikel beschrieben, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
960484 kumulative Updatepaket 3 für SQL Server 2008

Referenzen

Informationen zur Liste der Builds, die nach SQL Server Service Pack 2 verfügbar sind, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
937137 der SQL Server 2005 erstellt, die nach der Freigabe von SQL Server 2005 Service Pack 2 veröffentlicht wurden
Weitere Informationen zum inkrementellen Dienstmodell für SQL Server klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
935897 erläutert wird ein inkrementelles Dienstmodell steht der SQL Server-Team zu Hotfixes für gemeldete Probleme
Weitere Informationen zu SQL Server 2005 Service Pack 2 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
913089 so erhalten Sie das neueste Servicepack für SQL Server 2005
Weitere Informationen zu neuen Funktionen und Optimierungen in SQL Server 2005 Service Pack 2 finden Sie auf der folgenden Microsoft-Website:Weitere Informationen zum Benennungsschema für SQL Server-Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
Neues Benennungsschema für Microsoft SQL Server-Software 822499 Pakete aktualisieren
Um weitere Informationen zur Terminologie für Softwareupdates zu erhalten, klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
824684 Erläuterung von der standardmäßigen Standardbegriffen bei Microsoft Softwareupdates
Eigenschaften

Artikelnummer: 960283 – Letzte Überarbeitung: 13.01.2017 – Revision: 1

Feedback