當您變更執行 SQL Server 的電腦名稱時,就會在 SQL Server 安裝期間辨識此新名稱。 您不需要重新執行安裝程式來重設電腦名稱。 請改用下列步驟來更新儲存在 sys.servers 中並由系統函數 @@SERVERNAME 報告的系統元數據。 更新系統元數據,以反映遠端連線和使用 @@SERVERNAME 的應用程式的計算機名稱變更,或從 sys.servers 查詢伺服器名稱。
下列步驟無法用來重新命名 SQL Server 的實例。 這些步驟只能用來重新命名執行個體名稱中與電腦名稱相對應的部分。 例如,您可以將裝載 SQL Server 名為 Instance1 實例的 MB1 計算機更改名稱為 MB2。 不過,名稱 Instance1 的實例部分會保持不變。 在此範例中,\\ComputerName\InstanceName 會從 \\MB1\Instance1 變更為 \\MB2\Instance1。
開始之前
在開始執行重新命名程序之前,請先檢閱下列資訊:
當 SQL Server 執行個體是 SQL Server 容錯移轉叢集的一部分時,此電腦的重新命名程序會與裝載獨立執行個體的電腦不同。
SQL Server 不支援重新命名涉及複製的電腦,除非您在使用記錄傳送的同時使用複製功能。 如果主要電腦永久遺失,記錄傳送中的次要電腦可以重新命名。 如需詳細資訊,請參閱記錄傳送和複寫 (SQL Server)。
當您要重新命名設定為使用 Reporting Services 的電腦時,Reporting Services 在電腦名稱變更之後可能無法使用。 如需詳細資訊,請參閱 重新命名報表伺服器電腦。
當您要重新命名已設定為使用資料庫鏡像的電腦時,您必須在重新命名作業之前關閉資料庫鏡像。 然後使用新的電腦名稱,重新建立資料庫鏡像。 資料庫鏡像的元數據將不會自動更新,以反映新的計算機名稱。 請使用下列步驟來更新系統中繼資料。
透過以硬式編碼方式參考電腦名稱的 Windows 群組來連線到 SQL Server 的使用者,可能無法連線到 SQL Server。 如果 Windows 群組指定舊的計算機名稱,就會在重新命名之後發生此情況。 為了確保這種 Windows 群組在重新命名作業之後仍能連線到 SQL Server,請更新 Windows 群組,以指定新的電腦名稱。
重新啟動 SQL Server 之後,您可以使用新的電腦名稱連線到 SQL Server。 為了確保@@SERVERNAME傳回本機伺服器實例的更新名稱,您應該手動執行適用於您案例的下列程式。 您使用的程式取決於您要更新裝載 SQL Server 預設或具名實例的電腦。
重新命名裝載 SQL Server 獨立實例的電腦
若要重新命名一台裝載 SQL Server 預設執行個體的電腦,請執行下列步驟:
sp_dropserver <old_name>; GO sp_addserver <new_name>, local; GO重新啟動 SQL Server 的執行個體。
若重新命名的電腦裝載了具名執行個體的 SQL Server,請執行下列程序:
sp_dropserver <old_name\instancename>; GO sp_addserver <new_name\instancename>, local; GO重新啟動 SQL Server 的執行個體。
重新命名作業之後
重新命名計算機之後,任何使用舊計算機名稱的連接都必須使用新名稱進行連線。
確認重新命名作業已順利完成
從 @@SERVERNAME 或 sys.servers 選取資訊。 @@SERVERNAME函式會傳回新的名稱,而 sys.servers 數據表會顯示新的名稱。 下列範例示範如何使用 @@SERVERNAME。
SELECT @@SERVERNAME AS 'Server Name';
其他考慮
遠端登入 - 如果電腦有任何遠端登錄,執行 sp_dropserver 可能會產生類似下列的錯誤:
Server: Msg 15190, Level 16, State 1, Procedure sp_dropserver, Line 44 There are still remote logins for the server 'SERVER1'.
若要解決錯誤,您必須卸除這部伺服器的遠端登入。
停止遠端登錄
如果為預設執行個體,請執行下列程序:
sp_dropremotelogin old_name; GO如果是具名執行個體,請按照以下步驟操作:
sp_dropremotelogin old_name\instancename; GO
連結的伺服器組態 - 鏈接的伺服器組態將受到電腦重新命名作業的影響。 您可以使用 sp_addlinkedserver 或 sp_setnetname 更新電腦名稱標記。 如需詳細資訊,請參閱sp_addlinkedserver(Transact-SQL)或sp_setnetname(Transact-SQL)。
用戶端別名名稱 - 使用命名管道的用戶端別名將受到電腦重新命名作業的影響。 例如,如果建立別名 「PROD_SRVR」 以指向 SRVR1 並使用命名管道通訊協定,則管道名稱看起來會像 \\SRVR1\pipe\sql\query。 重新命名電腦後,命名管道的路徑將不再有效。 如需具名管道的詳細資訊,請參閱 使用具名管道建立有效的連接字串。