SQL Server @@ SERVERNAME返回旧机器名?

Jer*_*dge 31 sql-server sql-server-2008-r2

我在我的SQL Server 2008 R2中偶然发现了一个问题 - 当我打电话时@@SERVERNAME,它正在返回我的OLD计算机的机器名,而不是当前的机器名.为什么是这样?我该如何解决?SQL Server以某种方式记住旧机器名称.

Rem*_*anu 57

这是众所周知和记录的,请参阅重命名承载SQL Server独立实例的计算机:

当您更改运行SQL Server的计算机的名称时,在SQL Server启动期间将识别新名称.您不必再次运行安装程序来重置计算机名称.而是,使用以下步骤更新存储在sys.servers中并由系统函数@@ SERVERNAME报告的系统元数据:

sp_dropserver <old_name>;
GO
sp_addserver <new_name>, local;
GO
Run Code Online (Sandbox Code Playgroud)

您还可以使用SERVERPROPERTY('MachineName')保证始终返回更新名称的内容:

MachineName运行服务器实例的Windows计算机名称.对于群集实例(在Microsoft群集服务上的虚拟服务器上运行的SQL Server实例),它返回虚拟服务器的名称.

SERVERPROPERTY('ComputerNamePhysicalNetBIOS') 将返回群集中的当前活动节点,或与非群集实例上的"MachineName"相同的值.

编辑(由第三方)添加WEFX的评论以防任何人错过它:

此外,您需要重新启动SQL服务(或重新启动SQL Server)才能SELECT @@SERVERNAME返回准确的(新)服务器名称

  • 此外,您需要重新启动SQL服务(或重新启动SQL Server),以便"SELECT @@ SERVERNAME"返回准确的(新)服务器名称. (4认同)

Chi*_*tan 5

我已经尝试了所有可能的解决方案,但批准的答案对我不起作用。我上网冲浪了一下,想出了一个完美的解决方案。我希望有人觉得这有帮助。

1)通过Window + R键打开注册表。键入注册表

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 > Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Machines