重新命名裝載 SQL Server 獨立執行個體的電腦

適用於:SQL Server - 僅限 Windows

當您變更執行 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 不支援重新命名複寫所涉及的電腦,但搭配複寫使用記錄傳送的情況則例外。 如果主要電腦已永久遺失,可以重新命名記錄傳送的次要電腦。 如需詳細資訊,請參閱記錄傳送和複寫 (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 預設執行個體的重新命名電腦,請執行下列程序:

    EXEC sp_dropserver '<old_name>';
    GO
    EXEC sp_addserver '<new_name>', local;
    GO
    

    重新啟動 SQL Server 的執行個體。

  • 若為裝載 SQL Server 具名執行個體的重新命名電腦,請執行下列程序:

    EXEC sp_dropserver '<old_name\instancename>';
    GO
    EXEC sp_addserver '<new_name\instancename>', local;
    GO
    

    重新啟動 SQL Server 的執行個體。

重新命名作業之後

在重新命名電腦之後,使用舊電腦名稱的任何連接都必須使用新名稱來連接。

確認重新命名作業

  • @@SERVERNAMEsys.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'.

若要解決錯誤,您必須卸除這部伺服器的遠端登入。

卸除遠端登入

  • 如果是預設執行個體,請執行下列程序:

    EXEC sp_dropremotelogin old_name;
    GO
    
  • 如果是具名執行個體,請執行下列程序:

    EXEC sp_dropremotelogin old_name\instancename;
    GO
    

連結的伺服器組態 - 連結的伺服器組態將會受到電腦重新命名作業影響。 您可以使用 sp_addlinkedserversp_setnetname 更新電腦名稱參考。 如需詳細資訊,請參閱 sp_addlinkedserver (Transact-SQL)sp_setnetname (Transact-SQL)

用戶端別名名稱 - 使用具名管道的用戶端別名將會受到電腦重新命名作業影響。 例如,如果您建立了指向 SRVR1 的別名 "PROD_SRVR" 並且使用具名管道通訊協定,此管道名稱將會類似這樣: \\SRVR1\pipe\sql\query。 重新命名電腦之後,具名管道的路徑將不再有效。 如需具名管道的詳細資訊,請參閱 使用具名管道建立有效的連接字串

另請參閱