Applies ToSQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Express with Advanced Services SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

徵狀

假設您在執行 Windows Server 2008 或 Windows Server 2008 R2 的電腦上安裝 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2。 當應用程式使用 Microsoft SQL Server Native Client 10.0 連線至 SQL Server 2008 或 SQL Server 2008 R2 時,您會間歇收到「未產生排程」錯誤。 注意: 在 SQL Server 2008 或 SQL Server 2008 R2 錯誤記錄檔中,會記錄每個「未產生的排程程式」錯誤。此外,SQL Server 也會在間歇性地停止回應。 若要解決此問題,您可能必須重新開機 SQL Server。 注意事項

  • 此熱修復程式適用于 SQL 原生用戶端和 SQL Server enginee。

  • 如果您已安裝 SQL Server 2008 Service Pack 2 (SP2),則不會發生「未產生排程」錯誤,且 SQL Server 2008 不會停止回應。 不過,您可能會收到類似以下的錯誤訊息:

    錯誤碼 26073-//ErrorFormat: TCP 連線已關閉,但 SQL Server 的子進程可能會保留連線的通訊端複本

原因

之所以發生這個問題,是因為 SQL Server 原生用戶端10.0 不正確處理通訊端上的 TCP close 呼叫。

解決方案

注意

如果您最近根據安全公告 MS11 (049)套用 SQL Server GDR 修正程式,則無法套用本文所述的累積更新。 當您嘗試使用累積更新設定來套用修正程式時,您會收到類似以下的錯誤訊息:

已將具有較高版本的 SQL Server 更新安裝在 SQL Server 實例 <實例名稱>,所以無法套用目前的 SQL server 更新。 已安裝的 SQL Server 更新版本是具有 KB2494089 的 GDR 10.2.4064.0 (10.2.4310.0),而目前的 SQL Server 更新則10.2.4272.0 使用 KB2467239。

在這種情況下,除了修正 MS11-049 問題之外,您還必須針對此 KB 文章中提及的問題,套用包含修正程式的 GDR 套件。 若要找出適用于您的 SQL Server 組建範圍的相關 GDR 和 QFE 套件,請參閱下列安全公告的 [常見問題] 區段:

http://www.microsoft.com/technet/security/bulletin/MS11-049.mspx例如,如果您執行的是 SQL Server 2008 Service Pack 2,且您已為 KB2494089 套用 GDR 熱修復程式,以取得 KB2491214 的修正程式,您必須套用 QFE KB2494094 更新。

累積更新資訊

若要解決此問題,請針對 SQL Server 以及在電腦上執行的 Windows Server 套用適當的更新。 注意: 您可能會在使用 SQL Server 原生用戶端和函數(例如 CreateProcess 函數)的用戶端應用程式中遇到這個問題,以建立新的子進程。 在這種情況下,您必須為 Windows Server 和 SQL Server 套用這兩個熱修復程式。

SQL Server 更新

SQL Server 2008 R2 的累積更新套件6

此問題的修正程式是在累積更新6中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2489376 SQL Server 2008 R2 的累積更新套件6 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建Sql server 2008 的累積更新套件 2 Service pack 2 此問題的修正程式在 SQL Server 2008 Service Pack 2 的累積更新2中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2467239 SQL Server 2008 的累積更新套件 2 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 2 修補程式套用至 SQL Server 2008 Service Pack 2 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。

Windows Server 更新

Windows Server 2008 R2 的修補程式

976932 Windows 7 和 Windows Server 2008 R2 Service Pack 1 的相關資訊

Windows Server 2008 的修補程式

2398202 當應用程式關閉通訊端連線或關閉時,應用程式可能會在 Windows Server 2008 或 Windows Vista 中停止回應

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

因應措施

重要 此節、方法或工作包含的步驟可告訴您如何修改註冊表。不過,如果您不正確地修改註冊表,可能會發生嚴重問題。因此,請務必仔細遵循這些步驟。若要增加保護,請在修改前先備份註冊表。然後,如果發生問題,您可以還原註冊表。如需如何備份及還原註冊表的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

322756 如何在 Windows 中備份及還原登錄若要解決此問題,請在MSSQLServer的登錄機碼中新增SuperSocketNetlib\Tcp\TcpAbortiveClose值。若要這樣做,請執行下列步驟:

  1. 開啟 &lsqb;登錄編輯程式&rsqb;。 若要這樣做,請針對您的作業系統使用適當的方法:

    • 在 Windows Vista 中,按一下 [開始],在 [開始搜尋] 方塊中輸入regedit ,然後按 enter。

    • 在 Windows XP 中,按一下 [ 開始],按一下 [ 執行],輸入 Regedit,然後按一下 [確定]

  2. 找出下列登錄子機碼,然後按一下它。

    • 針對 SQL Server 2008 或 SQL Server 2008 R2 的預設實例,請按一下以下登錄子機碼:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10。MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp\

    • 針對 SQL Server 2008 或 SQL Server 2008 R2 的命名實例,請按一下以下登錄子機碼:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10。(InstanceName) \MSSQLServer\SuperSocketNetLib\Tcp\

  3. 在 [ 編輯 ] 功能表上,指向 [ 新增],然後按一下 [ DWORD 值]。

  4. 輸入 TcpAbortiveClose,然後按 enter。

  5. 按一下 [ 編輯 ] 功能表上的 [ 修改]。

  6. 按一下 [小數位],然後在 [值資料] 方塊中輸入1 。

  7. 關閉登錄編輯程式。

  8. 重新開機 SQL Server。

參考

如需有關如何安裝 SQL Server 原生用戶端的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站:

如何安裝 SQL Server 原生用戶端如需有關 SQL Server 的增量服務模型的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

935897 您可以從 SQL Server 團隊取得增量服務模型,以提供已報告問題的修補程式如需 SQL Server 更新命名架構的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

822499Microsoft SQL Server 軟體更新套件的新命名架構如需軟體更新術語的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

824684 描述 Microsoft 軟體更新所使用的標準術語說明

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。