[研究]SQL Server 伺服器 [伺服器名稱] 的 嘗試擷取物件的資料 失敗。
2026-09-01
標題: Microsoft SQL Server Management Studio
主要錯誤: 伺服器 [伺服器名稱] 的 嘗試擷取物件的資料 失敗。(Microsoft.SqlServer.Smo)
其他資訊: 伺服器層級的 Urn 篩選無效: 篩選必須是空的,或者伺服器屬性必須與真實的伺服器名稱相等。(Microsoft.SqlServer.Smo)
********************************************************************************
錯誤代表的意思
當 Windows 作業系統修改過主機名稱(Computer Name),但 SQL Server 內部的伺服器元資料(@@SERVERNAME)尚未更新時,SQL Server Management Studio (SSMS) 透過 SMO (SqlServer.Smo) 進行物件擷取(例如展開伺服器屬性、查看作業或資料庫物件)時,會發現連線名稱與實際內部記錄的伺服器名稱不符,從而跳出此錯誤。
解決方法
透過 SQL 語法修改內部記錄的伺服器名稱並重新啟動 SQL Server 服務即可解決。
確認名稱不一致問題
開啟 SSMS 連結至該 SQL Server,執行以下查詢:
|
|
SELECT @@SERVERNAME AS [SQL Server 紀錄名稱], SERVERPROPERTY('ServerName') AS [實際主機名稱];
若兩者顯示的名稱不相同,即為導致此錯誤的原因。
刪除舊名稱並新增正確名稱
在 SSMS 執行以下指令(將 '舊伺服器名稱' 與 '新伺服器名稱' 替換為步驟 1 查出的對應名稱):
|
實際測試成功
|
實際測試成功
開啟 SQL Server Configuration Manager 或 Windows 服務 (services.msc)。
找到對應的 SQL Server (MSSQLSERVER) 服務並點擊 重新啟動 (Restart)。
驗證結果
重啟後重新連線,再次執行 SELECT @@SERVERNAME; 確認是否已更新為正確名稱。確認無誤後,即可正常讀取物件與屬性頁面。
***
敝人實際測試成功。注意,sp_addserver有個 'local' 參數。
(完)
沒有留言:
張貼留言