使用 SQL Server 連結伺服器功能將較高版本連線到較低版本的 SQL Server 時發生錯誤
本文可協助您尋找使用 Windows Server 2022 或更新版本 SQL Server 功能,連線問題的解決方案,以及裝載於舊版 Windows 上的 SQL Server。
徵兆
如果您使用 SQL Server 連結伺服器功能,從 Windows Server 2022 或更新版本連線到在較低版本的 Windows 上執行的 SQL Server,就可能發生此問題。
您可能會收到下列其中一個錯誤訊息:
[Microsoft OLE DB Driver for SQL Server]: 用戶端無法建立連線
[Microsoft OLE DB Driver for SQL Server]:TCP 提供者:遠端主機已強制中斷現有的連線。
在這裡,當伺服器嘗試連線到 SQL Server 時,遠端伺服器會收到 TLS 訊息。 產生無法復原的警示,並傳送至遠端端。 此錯誤可能會終止連線。 定義嚴重錯誤碼的 TLS 通訊協定為 40。 Windows 信道錯誤狀態為 1205。
原因
TLS 1.2 的支援可能是使用 Azure 虛擬機連線到 SQL Server 2012 時發生問題的原因。
解決方法
若要解決此問題,請新增下列必要的登錄機碼,並將 SQL Server 更新為 2012 SP4,讓 SQL Server 2022 可以連線到它。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
在 SQL Server 2012 伺服器上安裝更新之後,您可能會收到下列錯誤訊息:
SQL Server 實例 MSSQLSERVER 的語言不符合 SQL Server 更新預期的語言。 已安裝 SQL Server 產品的語言是<其他語言>,預期的 SQL Server 語言是英文(美國)。
若要解決此錯誤,請遵循下列步驟。
注意
在執行此程式中的命令之前,請確定您已安裝英文 (美國) 語言套件。
開啟 PowerShell。
若要取得目前的語言清單,請執行下列命令:
Get-WinUserLanguageList
若要將語言設定為英文 (美國),請執行下列命令:
Set-WinUserLanguageList -LanguageList en-US
重新啟動伺服器。
再次重新啟動伺服器。
若要使用 UDL 檢查連線能力,請參閱 通用數據連結 (UDL) 組態。