簡體   English   中英

SQL Server @@ SERVERNAME返回舊計算機名稱?

[英]SQL Server @@SERVERNAME returning old machine name?

我剛在SQL Server 2008 R2中偶然發現一個問題-調用@@SERVERNAME ,它返回的是舊計算機的計算機名,而不是當前的計算機名。 為什么是這樣? 我該如何解決? SQL Server以某種方式記住了舊計算機的名稱。

這是眾所周知的並已記錄在案,請參閱重命名承載SQL Server獨立實例的計算機

當您更改運行SQL Server的計算機的名稱時,新名稱將在SQL Server啟動期間被識別。 您不必再次運行安裝程序來重置計算機名稱。 而是,使用以下步驟來更新存儲在sys.servers中並由系統功能@@ SERVERNAME報告的系統元數據:

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

您還可以使用SERVERPROPERTY('MachineName')保證始終返回更新的名稱:

MachineName運行服務器實例的Windows計算機名稱。 對於群集實例,即在Microsoft群集服務上的虛擬服務器上運行的SQL Server實例,它將返回虛擬服務器的名稱。

SERVERPROPERTY('ComputerNamePhysicalNetBIOS')將返回集群中的當前活動節點,或與非集群實例上的'MachineName'相同的值。

編輯(由第三方)以添加WEFX的評論,以防有人錯過:

另外,您需要重新啟動SQL服務(或重新啟動SQL Server),以便SELECT @@SERVERNAME返回准確的(新)服務器名。

我懷疑這是因為實例是默認安裝,並且當時繼承了計算機名稱並保留了該名稱。 嘗試這個?

SELECT SERVERPROPERTY('MachineName')

有時您會得到一個錯誤There are still remote logins or linked logins for the server 'yourServerName'運行sp_dropserver 'oldServerName';There are still remote logins or linked logins for the server 'yourServerName' sp_dropserver 'oldServerName';

如果您遇到這種錯誤,請嘗試運行sp_dropserver 'oldServerName', 'droplogins'; 代替。

我嘗試了所有可能的解決方案,但批准的答案對我不起作用。 我已經瀏覽了一下,並提出了完美的解決方案。 我希望有人能對此有所幫助。

1)通過Window + R鍵打開注冊表。 輸入regedit

2)轉到* HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Microsoft SQL Server *您將看到大量帶編號的目錄(100,120,130 ....)

要么

您只需在注冊表編輯器的地址欄中鍵入“ Computer \\ HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Microsoft SQL Server \\”

3)瀏覽所有編號的目錄,看看是否可以在其中找到“ Machines ”目錄

4)找到“ Machines ”后,將OriginalMachineName鍵更改為您想要的服務器名稱。 這實際上是Windows首次安裝時的原始計算機名稱。

PS:我的路徑是OriginalMachineName> 計算機\\ HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Microsoft SQL Server \\ 130 \\ Machines

sp_addserver將修復它.....

就我而言,我不能放棄名字。 我可以重新啟動MSSQL或VM, @@SERVERNAME始終返回舊名稱,而其他所有方法(包括SERVERPROPERTY('SERVERNAME') )都返回新名稱,這會引起各種問題。 事實證明,刪除名稱並重新添加(當然,然后重新啟動MSSQL)可以解決此奇怪的問題:

sp_dropserver <new_name>; GO
sp_addserver <new_name>, local; GO

如果您先運行sp_dropserver ,然后再運行sp_addserver如其他人所述)並且未使用SELECT @@ SERVERNAME進行更改,則數據庫名稱也區分大小寫。 只要檢查您拼寫正確的數據庫名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM