Check whether the names of the related SQL Server servers have been changed (the srvname and datasource must be the same on the local machine with srvid = 0)
Run the following command in the query Analyzer:
Use master
Select srvid, srvname, datasource from sysservers
If there is no srvid = 0 or srvid = 0 (that is, the current machine) but the srvname is different from the datasource, You need to modify it as follows:
Use master
Go
-- Set two variables
Declare @ serverproperty_servername varchar (100 ),
@ Servername varchar (100)
-- Obtain information about the Windows NT server and the instance associated with the specified SQL server instance
Select @ serverproperty_servername = convert (varchar (100), serverproperty ('servername '))
-- Returns the name of the local server running Microsoft SQL Server.
Select @ servername = convert (varchar (100), @ servername)
-- Display the obtained Parameters
Select @ serverproperty_servername, @ servername
-- If @ serverproperty_servername is different from @ servername (because you changed the computer name), run the following
-- Delete the wrong server name
Exec sp_dropserver @ Server = @ servername
-- Add the correct server name
Exec sp_addserver @ Server = @ serverproperty_servername, @ local = 'local'
To modify this parameter, you must restart the MSSQLServer and SQLServerAgent services to take effect.
From: http://topic.csdn.net/t/20050831/16/4242417.html
PS: Actually, I tried the above method, but the server name can't be changed, but I found out the cause of the error. I did change the machine name before, so I simply changed the name of the computer machine back to the original one, and then I found that many of the strange and strange problems encountered during data replication did not happen again, this may be because the machine name is modified.