修改機器名稱後,@@SERVERNAME 與 SERVERPROPERTY('ServerName') 不一致,導致鏈接服務器、作業等失效。以下腳本自動同步兩者。
-- 查看當前狀態
SELECT @@SERVERNAME AS current_servername,
SERVERPROPERTY('ServerName') AS property_servername;
USE master;
GO
DECLARE @prop_sysname VARCHAR(100), @srvname VARCHAR(100);
SELECT @prop_sysname = CONVERT(VARCHAR(100), SERVERPROPERTY('ServerName'));
SELECT @srvname = CONVERT(VARCHAR(100), @@SERVERNAME);
SELECT @prop_sysname AS property_name, @srvname AS servername;
-- 若不一致,執行修復
IF @prop_sysname <> @srvname
BEGIN
EXEC sp_dropserver @server = @srvname;
EXEC sp_addserver @server = @prop_sysname, @local = 'local';
PRINT '已同步,請重啟 SQL Server 服務生效。';
END
sp_dropserver 移除舊的本地服務器註冊。sp_addserver @local='local' 將新名稱註冊為默認實例(本地服務器)。