解决SQL Server发布订阅时需要有实际的服务器名称才能连接到服务器的问题

时间:2021-04-11 00:34:23

SQL Server 2008配置发布订阅时,报错:SQL Server 复制需要有实际的服务器名称才能连接到服务器,不支持通过别名、ip地址或其他任何备用名称进行连接。请指定实际的服务器名称“xxxx”(Replication Utlities)。"

 

经过一番分析发现是在安装完sql server 后修改过机器名称,运行下面两条语句既可以看出来:

select @@servername

select serverproperty('servername')

 

如果这两个结果不一致,说明机器改过名字,在配置复制的时候就会报上面的错误。

 

--要修复此问题  

--执行下面的语句,完成后重新启动SQL服务  

 

if serverproperty('servername') <> @@servername

begin

declare @server sysname

set @server = @@servername

exec sp_dropserver @server = @server

set @server = cast(serverproperty('servername') as sysname)

exec sp_addserver @server = @server , @local = 'LOCAL'

End

 

需注意的是,改过之后必须要重启一下SQL 服务器才可以,这时在用

select @@servernameselect serverproperty('servername')查看的结果是一样的,都是当前服务器的名字了。