使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

Microsoft 將 Microsoft SQL Server 2012 發佈成一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2012 更新版本中包含的所有修復程式及所有安全性更新。

徵狀

假設您同時在 Microsoft SQL Server 2012 的多個會話中同時執行許多 xp_cmdshell 的儲存程式。 在這種情況下,第一次執行的 xp_cmdshell 儲存程式不會完成,直到最後一次執行完成為止。

原因

之所以會發生此問題,是因為在您同時執行 xp_cmdshell 的儲存程式時,進程會繼承控制碼。 CreateProcess API 需要處理繼承以重新導向標準輸出與錯誤訊息。 如果同時執行多個 xp_cmdshell 的存儲程式程式,新開啟的程式就可以繼承現有進程的控制碼。 不過, xp_cmdshell 的儲存程式會等到所有開啟的進程關閉控點。 因此,當多個處理常式繼承控點時,所有 xp_cmdshell 的執行都必須等到最長的進程關閉控制碼為止。

解決方案

若要解決此問題,請套用下列累計更新。 此更新新增 CreateProcess API STARTUPINFOEX 選項,這些選項可防止跨進程的處理常式繼承。

累積更新資訊

SQL Server 2012 的累積更新套件 1 Service Pack 1

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

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

2772858 在發行 SQL Server 2012 Service Pack 1 之後發行的 SQL Server 2012 組建

SQL Server 2012

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

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

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建

狀態

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

參考

如需 CreateProcess 函數的詳細資訊,請移至下列 MSDN 網站:

CreateProcess 函數的一般資訊如需 xp_cmdshell 的儲存程式的詳細資訊,請移至下列 MSDN 網站:

Xp_cmdshell 儲存程式的一般資訊 如需類似問題的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

315939 PRB: Child 會在 CreateProcess 通話期間繼承非預期的控制碼

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×