检查相关的几台SQL Server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样)
在查询分析器里执行:
use master
select srvid,srvname,datasource from sysservers
如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改:
USE master
GO
-- 设置两个变量
DECLARE @serverproperty_servername varchar(100),
@servername varchar(100)
-- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息
SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY( 'ServerName'))
-- 返回运行 Microsoft SQL Server 的本地服务器名称
SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
-- 显示获取的这两个参数
select @serverproperty_servername,@servername
--如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
--删除错误的服务器名
EXEC sp_dropserver @server=@servername
--添加正确的服务器名
EXEC sp_addserver @server=@serverproperty_servername, @local= 'local'
修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。
来自:http://topic.csdn.net/t/20050831/16/4242417.html
Ps:其实上面的方法我试了,但是服务器名老是改不过来,不过倒查出了错误的原因,之前我的确是改过了机器名,所以我干脆把电脑机器名改回原来那个,然后我发现之前做数据复制时出错的很多奇奇怪怪的问题都没有再出现了,所以可能都是因为修改了机器名所致。