我正在执行一个查询,我希望从中获取系统上安装的所有服务器名称 所以我用这个查询做了
select srvname from sysservers
它为我提供了服务器名称,但它不是正确的服务器名称,它为我提供了srvname
WIN-1BKHGVK7J3A\SQLSERVER2008R2
但这不是我的服务器名称,我也尝试通过此查询以其他方式进行此操作
Select @@Servername
它还提供了错误的服务器名称WIN-1BKHGVK7J3A\SQLSERVER2008R2
但是当我使用此查询时
SELECT SERVERPROPERTY ('ServerName')
它提供了正确的服务器名称AIS-OCTACORE\SQLserver2008r2
但是对此的限制是它只提供当前服务器名称,并且我希望在系统上安装所有服务器名称
你能告诉我为什么我的服务器名称出错了吗?
我怎么能得到所有的服务器名称
答案 0 :(得分:15)
检查当前值设置为
的内容SELECT ServerProperty('machinename') as [machinename]
,ServerProperty('ServerName') as [ServerName]
,@@ServerName as [@@ServerName];
要解决此问题,请执行以下操作:
EXEC sp_dropserver 'old_server_name';
GO
EXEC sp_addserver 'new_server_name', 'local';
GO
您需要重新启动SQLSERVER服务
答案 1 :(得分:3)
安装SQL Server后更改服务器名称时可能会发生这种情况。
您可以尝试使用sp_dropserver和sp_addserver将其更改回来:http://www.brentozar.com/blitz/servername-not-set/
我不确定我会不会知道为什么它会在一开始就改变它可能会破坏某些东西。
答案 2 :(得分:2)
虽然@@ SERVERNAME函数和SERVERPROPERTY函数的SERVERNAME属性可能返回格式相似的字符串,但信息可能不同。 SERVERNAME属性会自动报告计算机网络名称的更改。
相反,@@ SERVERNAME不会报告此类更改。 @@ SERVERNAME 报告使用sp_addserver或sp_dropserver存储过程对本地服务器名称所做的更改。technet
查找“服务器名称”
SELECT SERVERPROPERTY('MACHINENAME')
使用“INSTANCE NAME”查找“服务器名称”(如果是其命名实例)
SELECT SERVERPROPERTY('SERVERNAME')
查找“客户机名称”(本地机器名称)
SELECT HOST_NAME()