修正︰ 幾個問題發生,當您使用的由 SQL Server 2008年中的 SQL 原生的用戶端提供者所建立的連結的伺服器

適用於: SQL Server 2008 DeveloperSQL Server 2008 EnterpriseSQL Server 2008 Standard

Microsoft 會為一個可下載的檔案散佈 Microsoft SQL Server 2008年的修正程式。的修正程式是累積的因為每個新版本包含的所有 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。

狀況


在電腦上正在執行 Microsoft SQL Server 2008年,您遇到一或多個下列的問題當您使用 SQL 的原生用戶端提供者 (Sqlncli.dll) 來建立連結的伺服器。

注意在 Microsoft SQL Server 2005 Service Pack 3 (SP3) 也會發生這些問題。不過,這份文件中的 hotfix 不適用於 SQL Server 2005 SP3。

問題 1

請考慮下列情況:
  • 在 SQL Server Management Studio,您可以開啟 [新增連結伺服器] 視窗,並建立連結的伺服器,使用以下的安裝其中一項︰
    • SQL Server伺服器類型與 SQL 的原生用戶端提供者
    • 伺服器型別其他資料來源的 SQL 原生用戶端 (不 SQL 原生用戶端 10) 提供者
    • Microsoft OLE DB 提供者與伺服器型別其他資料來源的 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
------------------------------
其他資訊︰
執行異動性 SQL 陳述式或批次時發生例外狀況。(Microsoft.SqlServer.ConnectionInfo)
------------------------------

逾時。作業完成之前的逾時期限已過,或伺服器沒有回應。(Microsoft SQL Server、 錯誤:-2)



注意如果您執行連結的伺服器查詢,當您使用 SQL 的原生用戶端提供者與伺服器型別SQL Server時,就不會發生這個問題。

問題 2

請考慮下列情況:
  • 您可以使用 Microsoft OLE DB 提供者,ODBC 驅動程式,以建立連結的伺服器。
  • 建立使用伺服器型別中的 SQL 原生的用戶端提供者,為其他資料來源的 ODBC 資料來源。
在這個案例中,連結的伺服器會傳回任何結果。

解決方案


SQL Server 2008 Service Pack 1 的第一次這個問題的修正程式釋放累積的更新 7] 中。如需此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文:-
979065SQL Server 2008 Service Pack 1 的累積更新套件 7
注意因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文:-
970365SQL Server 2008年建置 SQL Server 2008 Service Pack 1 發行之後所發行的
Microsoft SQL Server 2008 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2008 Service Pack 1 hotfix 套用至的 SQL Server 2008 Service Pack 1 安裝。根據預設,SQL Server service pack 中所提供的任何 hotfix 併入下一步的 SQL Server service pack。

更多的資訊


您可以確認 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 Service Pack 1 (SP1) 或較新版本的 Microsoft SQL Server 2008年,查詢會傳回下列的版本資訊︰
  • Sqlncli.dll 檔案將會晚於 9.0:3207.0 有版本。
  • Sqlservr.exe 檔案必須晚於或等於比 10.0:2766.0 10.0:2531.0,但稍早的版本。
如果您使用 Microsoft SQL Server 2008 RTM 或較新版本的 SQL Server 2008 RTM,查詢會傳回下列的版本資訊︰
  • Sqlncli.dll 檔案將會晚於版本 9.0:3207.0 有版本。
  • Sqlservr.exe 檔案必須晚於或等於比 10.0:1835.0 10.0:1600.0,但稍早的版本。

因應措施


若要解決這些問題,請依照下列步驟執行︰

Workaround 1:

1.刪除失敗的連結的伺服器。

2.建立新的連結的伺服器,使用 SQL Server 原生用戶端 10.0 (SQLNCLI10) 提供者。若要執行這項操作︰
a.以滑鼠右鍵按一下連結伺服器上,選取 [新增連結伺服器
b.選取其他資料來源,然後選擇 [提供者的SQL Server 原生的用戶端 10.0

Workaround 2:
  1. 建立名為"SQLNCLI",在下列路徑的登錄子機碼︰
    HKLM\Software\Microsoft\DataAccess
  2. 建立名為"SQLOSPartitioning",這個子機碼下的登錄項目 REG_DWORD 類型。
  3. 這個項目的值設為 0x0。

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

更多的資訊


規則軟體規則標題規則描述針對規則進行評估的產品版本
System Center 警告器SQL Server 以避免 SQL 原生的用戶端記憶體損毀 [遺漏更新 KB979779SQL 原生的用戶端提供者對應到 SQL Server 2005 存在於此伺服器。列舉提供者,並建立連結伺服器時,這個舊版的 SQLNCLI.dll,無法可能載入 SQL Server 2008年,以及 SQL Server 2008 R2 中。特定的 SQL Server 2008年,以及 SQL Server 2008 R2 的組建,就可能發生問題,且在建立或使用連結的伺服器,如此一來所建立的擱置影響 SQLNCLI.dll。更新受影響的執行個體的 SQL Server 2008年,以及 SQL Server 2008 R2 與必要的修正程式,或避免建立連結的伺服器時,請使用此 SQLNCLI.dll。SQL Server 2008

SQL Server 2008 R2


參考


如需 SQL Server 的累加式的服務模型的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

935897的累加式服務模型可以使用從 SQL Server 小組製作報告的問題的 hotfix



如需有關 SQL Server 更新的命名結構描述的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

822499新命名的結構描述為 Microsoft SQL Server 軟體更新套件的


如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述