我正在尝试配置SQL Server(2016)的发行版。这是一个 Azure SQL VM。但是,这样做时出现以下错误:
TITLE: Configure Distribution Wizard
------------------------------
SQL Server is unable to connect to server 'COMPANY-SQL'.
SQL Server replication requires the actual server name to make a connection to the server. Specify the actual server name, ''. (Replication.Utilities)
(请注意,它实际上不是COMPANY-SQL
而是类似的命名格式)。我已经尝试过,正如许多帖子中所建议的那样sp_dropserver
和sp_addserver
.这将成功创建设置为company-sql-2
@@SERVERNAME
,这是我的两个 Azure 资源的名称(不确定COMPANY-SQL
来源)。尽管已经连接到数据库,但我仍然不知道如何在此处连接以及为什么错误说实际的服务器名称只是"。
Server 无法连接到服务器"COMPANY-SQL"。
SQL Server 复制需要实际的服务器名称才能与服务器建立连接。指定实际服务器名称 ''。(复制.实用程序)
SERVERPROPERTY
:Windows 服务器和实例名称共同构成特定的服务器实例,由 ServerName 属性提供。
@@SERVERNAME
:现在设置的本地服务器的名称由@@SERVERNAME提供。
一起运行以下命令,您将获得两个不同的名称。
SELECT SERVERPROPERTY(N'servername')
SELECT @@SERVERNAME
然后通过删除@@SERVERNAME
命令获取的名称来更改服务器名称sp_dropserver
并使用sp_addserver
过程设置SERVERPROPERTY
命令获取的名称,然后重新启动SQL Server服务。
我知道回答已经很晚了,但也许它可以帮助新访客。
应将 SQL Server 服务器名称替换为计算机的正确网络名称
让我们在 master 数据库上执行此查询。
-- Use the Master database
USE master
GO
-- Declare local variables
DECLARE @serverproperty_servername varchar(100),
@servername varchar(100);
-- Get the value returned by the SERVERPROPERTY system function
SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'));
-- Get the value returned by @@SERVERNAME global variable
SELECT @servername = CONVERT(varchar(100), @@SERVERNAME);
-- Drop the server with incorrect name
EXEC sp_dropserver @server=@servername;
-- Add the correct server as a local server
EXEC sp_addserver @server=@serverproperty_servername, @local='local';
这对我有用。
参考 : MSSQLSERVER_18483
在下一步中,如果您遇到RegCreateKeyEx()错误,请在此处阅读解决方案