FIX: 您時可能會遇到死結案例在 SQL Server 2005 或在 SQL Server 2008,使用資料表變數

文章翻譯 文章翻譯
文章編號: 960283 - 檢視此文章適用的產品。
Bug #: 50003816 (SQL Hotfix)

Microsoft 等距均分 Microsoft SQL Server 2005 或 SQL Server 2008 修正為一個可下載的檔案。因為修正程式是累積,每個新版本包含所有 Hotfix 及先前的 SQL Server 2005 或 SQL Server 2008 隨附所有安全性修正程式都修正發行。
全部展開 | 全部摺疊

在此頁中

徵狀

在 Microsoft SQL Server 2005 或 Microsoft SQL Server 2008 中時, 可能會遇到死結案例執行類似下列的查詢:
INSERT <table variable> EXEC <stored procedure>

解決方案

累積更新資訊

SQL Server 2005 Service Pack 2

重要如果您執行 SQL Server 2005 Service Pack 2,您必須使用此修正程式。

這個問題的修正程式先於針對 SQL Server 2005 Service Pack 2 的累積更新 11 發行。如更多有關此累積更新套件,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
958735SQL Server 2005 Service Pack 2 的累積更新套件 11
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
Microsoft SQL Server 2005 的 Hotfix 會建立特定的 SQL Server Service Pack。您必須將 SQL Server 2005 Service Pack 2 Hotfix 套用至的 SQL Server 2005 Service Pack 2 安裝。預設狀況下,在 SQL Server Service Pack 中提供任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2005 Service Pack 3

重要如果您正在執行 SQL Server 2005 Service Pack 3,則必須使用此修正程式。

這個問題的修正程式也稍後於累計更新 1 的 SQL Server 2005 Service Pack 3 發行。如更多有關此累積更新套件,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
959195SQL Server 2005 Service Pack 3 的累積更新套件 1
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
960598SQL Server 2005 會建置發行 SQL Server 2005 Service Pack 3 之後所發行
Microsoft SQL Server 2005 的 Hotfix 會建立特定的 SQL Server Service Pack。您必須將 SQL Server 2005 Service Pack 3 Hotfix 套用到 SQL Server 2005 Service Pack 3 的安裝。預設狀況下,在 SQL Server Service Pack 中提供任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2008

這個問題的修正程式先於累計更新 3 發行。如需有關如何取得此累積更新套件的 SQL Server 2008 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
960484SQL Server 2008 的累積更新套件 3
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。我們建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
956909SQL Server 2008 建置發行 SQL Server 2008 之後所發行

其他可行方案

如果要解決這個問題,使用暫存資料表來取代資料表變數。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

這個問題時,事件如下所示登入 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

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
958735SQL Server 2005 Service Pack 2 的累積更新套件 11

SQL Server 2008

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
960484SQL Server 2008 的累積更新套件 3

?考

如更多有關清單的組建,都可以使用 SQL Server Service Pack 2 之後,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
如更多有關累加式的維修模型為 SQL Server,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
935897累加式的維修模型是可以從 SQL Server 小組來傳遞回報問題的 Hotfix
如需有關如何取得 SQL Server 2005 Service Pack 2 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
913089如何取得最新的 Service Pack,SQL Server 2005 的
如需有關新功能與 SQL Server 2005 Service Pack 2 的改進的詳細資訊,請造訪下列 Microsoft 網站:
http://go.microsoft.com/fwlink/?LinkId=71711
如 SQL Server 更新命名的結構描述的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
822499Microsoft SQL Server 軟體更新套件的新命名結構描述
如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 960283 - 上次校閱: 2009年1月19日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
關鍵字:?
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB960283 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:960283
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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