執行 SELECT @@SERVERNAME 與 SELECT SERVERPROPERTY('ServerName') 結果不同,導致連結伺服器、複寫、作業排程等功能異常。
伺服器主機名稱變更後,@@SERVERNAME (儲存於 sys.servers) 不會自動更新,而 SERVERPROPERTY('ServerName') 會即時讀取作業系統名稱。
-- 1. 確認目前狀態
SELECT @@SERVERNAME AS [@@SERVERNAME], SERVERPROPERTY('ServerName') AS [ServerProperty];
-- 2. 移除舊項目
EXEC sp_dropserver @server = '舊伺服器名稱';
-- 3. 加入正確名稱並標記為本地
EXEC sp_addserver @server = '正確伺服器名稱', @local = 'LOCAL';
-- 4. 重啟 SQL Server 服務 (MSSQLSERVER 或具名執行個體)
-- 5. 再次驗證
SELECT @@SERVERNAME, SERVERPROPERTY('ServerName');
主機名稱\執行個體名稱。sp_dropserver 前,確認無其他連結伺服器參考此名稱。