KB2954861 - 修正:當您在 SSDT 中預覽 SSIS 套件的命令時,會出現「查詢逾時過期」

套用到
SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Business Intelligence - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

請考慮以下案例:

  • 您可以使用 Microsoft SQL Server 2012 或 SQL Server 2014 和 Microsoft SQL Server Data Tools (SSDT) 來設計 SQL Server Integration Services (SSIS) 套件。
  • 在資料流程工作中,您可以使用 OLE DB 來源、ADO.NET 來源或 ODBC 來源等來源元件,將資料存取模式設定為 SQL 命令,然後在命令方塊中輸入查詢。
  • 按一下 [預覽] 以查看查詢結果。

在此案例中,預覽的命令執行時間超過 30 秒,且在設計工具中失敗。 此外,您收到類似「查詢逾時已過期」的錯誤。

原因

發生此問題是因為 SSIS 設計工具中的預覽功能將 CommandTimeout 閾值硬編碼為 30 秒。

解決方式

此問題已先在下列 SQL Server 累積更新中修正。

SQL Server 2014 累積更新 3 /zh-tw/help/2984923

SQL Server 2012 SP2 的累積更新 1 /zh-tw/help/2976982

SQL Server 2012 SP1 的累積更新 10 /zh-tw/help/2954099

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

      

        
附註:

  • 在您套用此 Hotfix 之前,所有 SSIS 元件的資料預覽中的逾時設定都會固定為 30 秒。

  • 套用此 Hotfix 之後:

    • 針對 ADO.NET 來源元件和 OLE DB 來源元件,它們已經有 CommandTimeout 屬性。 此屬性將用於資料預覽。

    • 針對具有資料預覽功能但沒有 CommandTimeout 屬性的所有其他元件:

      • 如果系統登錄機碼:\\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSIS\Preferences 下有 DWORD 值 DataPreviewTimeout,則 SSIS 會在預覽期間使用該值做為逾時。
      • 如果沒有 DWORD 值 DataPreviewTimeout,SSIS 仍會使用 30 秒。

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。