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 作為提供者。解決方法二:
-
在以下路徑建立一個名為「SQLNCLI」的登錄子鍵:
HKLM\Software\Microsoft\DataAccess
-
在此子鍵下建立一個名為「SQLOSPartitioning」的REG_DWORD型登錄檔項目。
-
將此條目的值設為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 增量服務模型的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
935897 SQL Server 團隊提供增量式服務模型,以提供針對回報問題的熱修正。欲了解更多關於 SQL Server 更新命名結構的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
822499Microsoft SQL Server 軟體更新套件的新命名架構 欲了解更多軟體更新術語,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明