套用到
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup

Microsoft 將 Microsoft SQL Server 2008 修補程式作為一個可下載檔案發佈。 由於修補是累積性的,每個新版本都包含了先前 SQL Server 2008 修補釋版本中包含的所有熱修補與安全修補。

徵兆

在運行於 2008 SQL Server Microsoft 的電腦上,當你使用 SQL 原生客戶端提供者 (Sqlncli.dll) 建立連結伺服器時,會遇到以下一項或多項問題。注意,這些問題也出現在Microsoft SQL Server 2005 年服務包 3 (SP3) 。 不過,本文中的熱修補不適用於 SQL Server 2005 SP3。

問題 1

請試想下列案例:

  • 在 SQL Server Management Studio 中,您可以開啟新的連結伺服器視窗,並透過以下設定之一建立連結伺服器:

    • SQL 原生客戶端提供者,伺服器類型SQL Server

    • SQL 原生客戶端 (非 SQL 原生客戶端 10) 以伺服器類型作為其他資料來源的提供者

    • Microsoft OLE DB Provider for SQL Server 以伺服器類型其他資料來源

  • 你可以在 SQL Server Management Studio 中展開連結伺服器目錄,以查看連結伺服器。

在這種情況下,SQL Server 服務會意外關閉,或在 SQL Server 錯誤日誌資料夾中反覆產生迷你傾印檔案。 此問題持續至SQL Server服務停止為止。 此外,SQL Server Management Studio回報以下錯誤:標題:Microsoft SQL Server Management Studio------------------------------未能取得此請求的資料。 (Microsoft.SqlServer.Management.Sdk.Sfc) 如需協助,請點選: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476------------------------------附加資訊:執行 Transact-SQL 陳述式或批次時發生異常。 (Microsoft.SqlServer.ConnectionInfo) ------------------------------逾時已過期。 逾時時間在操作完成前已過,或伺服器未回應。 (Microsoft SQL Server,錯誤:-2) 注意:若使用以 SQL Native Client provider 為 Server type 作為 SQL Server,執行連結伺服器查詢時,此問題不會發生。

問題 2

請試想下列案例:

  • 你可以透過使用 Microsoft OLE DB Provider for ODBC 驅動程式來建立連結伺服器。

  • ODBC 資料來源是使用 SQL 原生客戶端提供者,伺服器 類型其他資料來源

在這種情況下,連結的伺服器沒有回傳任何結果。

解決方案

此問題的修正最初於 SQL Server 2008 Service Pack 1 的累積更新 7 中釋出。 欲了解更多關於此累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章: -

979065SQL Server 2008 服務包 1 累積更新套件 7 備註由於建置是累積式的,每個新修正版本都包含先前 SQL Server 2008 修正版本中所有的熱修補與安全修補。 我們建議您考慮套用包含此熱修正的最新修正版本。 欲了解更多資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章: -

970365SQL Server 2008 版本在 SQL Server 2008 服務包 1 發布後釋出,Microsoft SQL Server 2008 熱修補則是針對特定 SQL Server 服務包所建立。 您必須對安裝 SQL Server 2008 Service Pack 1 SQL Server 熱修補程式。 預設情況下,SQL Server 服務包中提供的任何熱修正會包含在下一個 SQL Server 服務包中。

其他相關資訊

你可以透過執行以下查詢來確認 Sqlncli.dll 和 Sqlservr.exe 檔案的版本:

select * from sys.dm_os_loaded_modules where name like '%sqlncli.dll' or name like '%sqlservr.exe'

如果您使用的是Microsoft SQL Server 2008 服務包 1 (SP1) 或更新版本的 Microsoft SQL Server 2008,查詢將回傳以下版本資訊:

  • Sqlncli.dll 檔案的版本會比 9.0:3207.0 晚。

  • Sqlservr.exe 檔案的版本會晚於或等於10.0:2531.0,但早於10.0:2766.0。

如果您使用的是 Microsoft SQL Server 2008 RTM 或更新版本的 SQL Server 2008 RTM,查詢將回傳以下版本資訊:

  • Sqlncli.dll 檔案的版本會比 9.0:3207.0 更新。

  • Sqlservr.exe 檔案的版本會晚於或等於10.0:1600.0,但早於10.0:1835.0。

因應措施 

要解決這些問題,請遵循以下步驟:1:1 的解決方法。     刪除那個故障連結的伺服器。2.     使用SQL Server Native Client 10.0 (SQLNCLI10) 提供者建立一台新的連結伺服器。 要做到這點: a. 右鍵點擊連結伺服器,選擇新連結伺服器。 b. 選擇其他資料來源,並選擇 SQL Server Native Client 10.0 作為提供者。解決方法二:

  1. 在以下路徑建立一個名為「SQLNCLI」的登錄子鍵:

    HKLM\Software\Microsoft\DataAccess

  2. 在此子鍵下建立一個名為「SQLOSPartitioning」的REG_DWORD型登錄檔項目。

  3. 將此條目的值設為0x0。

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

其他相關資訊

規則軟體

規則標題

規則說明

用以評估該規則的產品版本

系統中心顧問

SQL Server缺少更新KB979779以防止 SQL 原生用戶端記憶體損毀

此伺服器中包含對應 SQL Server 2005 的 SQL 原生客戶端提供者。 這個較舊的 SQLNCLI.dll 版本有可能在 2008 SQL Server 和 2008 R2 中載入,SQL Server 在列舉提供者和建立連結伺服器時。 SQL Server 2008 和 SQL Server 2008 R2 的特定版本在建立或使用使用受影響 SQLNCLI.dll 的連結伺服器時,可能會遇到問題與當機。 請更新受影響的 SQL Server 2008 和 SQL Server 2008 R2 實例,並進行必要的修正,或在建立連結伺服器時避免使用此 SQLNCLI.dll。

SQL Server 2008SQL Server 2008 R2

參考

欲了解更多關於 SQL Server 增量服務模型的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

935897 SQL Server 團隊提供增量式服務模型,以提供針對回報問題的熱修正。欲了解更多關於 SQL Server 更新命名結構的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

822499Microsoft SQL Server 軟體更新套件的新命名架構 欲了解更多軟體更新術語,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

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

需要更多協助嗎?

想要其他選項嗎?

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