本文可協助您解決透過Visual Studio部署 SQL Common Language Runtime (CLR) 物件時所發生的逾時問題。
原始產品版本:SQL Server
原始 KB 編號: 2011805
徵兆
當您將 SQL CLR 物件從 Visual Studio 部署到 SQL Server 時,可能會遇到類似下列的各種錯誤:
錯誤訊息 1:
錯誤:啟動資料庫上傳交易失敗。
錯誤:無法完成作業錯誤訊息 2:
部署檔案:TEstAssembly.dll,路徑:E:\cases\CL MY\TEstAssembly\TEstAssembly\obj\Debug\TEstAssembly.dll ...錯誤:逾時已過期。 在作業完成前就已超過逾時期間,或是伺服器沒有回應。
但是,如果您在 SQL Server Management Studio 中使用 CREATE ASSEMBLY 命令部署相同的 CLR 物件,則不會遇到任何問題。
原因
當 SQL CLR 物件太大,因此需要很長的時間才能將物件部署到 SQL Server 時,就會發生此問題。 連線的預設逾時值為 15 秒,而查詢則分別為 30 秒。 部署大型元件時,CREATE ASSEMBLY在 SQL Server 後端上執行的語句可能需要 30 秒以上的時間才能傳回,進而產生徵兆一節中所述的錯誤。
解決方法
使用下列程式增加 Visual Studio 中的查詢逾時和連線逾時值。
變更查詢逾時
在 Visual Studio IDE 中,流覽至 [工具-> 選項 -> 資料庫工具 -> 查詢和檢視設計工具]。
您可以取消核取 [取消長時間執行的查詢] 選項,或將 [取消后] 選項 **** 的值變更為較高的值。
變更連線逾時
在 Visual Studio IDE 中,流覽至 [檢視 -> 伺服器總管],以啟用 [伺服器總管]。
在 [伺服器總管] 中,以滑鼠右鍵按兩下要部署CLR物件的SQL Server 連線,然後選取 [ 修改連線]。
選取 [修改連線] 視窗中的 [進階] 按鈕。
在 [進階屬性] 視窗中,將 [初始化] 區段下的 [連接逾時] 值變更為較高的值。