--使用下面的代码重新添加当前SQL Server实例的信息,处理完成后,应该重新启动MSSQLSERVER服务使修改生效。 DECLARE @srvname sysname SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname) IF NOT EXISTS(SELECT * FROM master.dbo.sysservers WHERE srvname=@srvname) EXEC sp_addserver @server = @srvname , @local = 'LOCAL' --执行下面的代码,将@@SERVERNAME的值修改为与SERVERPROPERTY('ServerName')一样即可。修改完成后,需要重新启动MSSQLSERVER服务使修改生效。 IF SERVERPROPERTY('ServerName')<>@@SERVERNAME BEGIN DECLARE @srvname sysname SET @srvname=@@SERVERNAME EXEC sp_dropserver @server=@srvname SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname) EXEC sp_addserver @server = @srvname , @local = 'LOCAL' END
sysserver系統表里顯示的服務器名: VM163\SQL2005DE3 這個是本機的實例名: VM171\SQL2005DE3我搭建同步複製時,報錯如下: SQL SERVER 複寫需要有實際的伺服器名稱才能連接到伺服器。不支援透過伺服器別名,IP位址或任何其他期待名稱來進行連接。請指定實際的伺服器名稱,'VM163\SQL2005DE3'
DECLARE @srvname sysname
SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname)
IF NOT EXISTS(SELECT * FROM master.dbo.sysservers WHERE srvname=@srvname)
EXEC sp_addserver @server = @srvname , @local = 'LOCAL'
--执行下面的代码,将@@SERVERNAME的值修改为与SERVERPROPERTY('ServerName')一样即可。修改完成后,需要重新启动MSSQLSERVER服务使修改生效。
IF SERVERPROPERTY('ServerName')<>@@SERVERNAME
BEGIN
DECLARE @srvname sysname
SET @srvname=@@SERVERNAME
EXEC sp_dropserver @server=@srvname
SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname)
EXEC sp_addserver @server = @srvname , @local = 'LOCAL'
END
VM163\SQL2005DE3
這個是本機的實例名:
VM171\SQL2005DE3我搭建同步複製時,報錯如下:
SQL SERVER 複寫需要有實際的伺服器名稱才能連接到伺服器。不支援透過伺服器別名,IP位址或任何其他期待名稱來進行連接。請指定實際的伺服器名稱,'VM163\SQL2005DE3'
感謝1樓,我之前只執行了addserver,沒有dropserver。現在把之前的實例名刪除了,就解決問題了。
還有把‘SERVERPROPERTY()’去掉
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