SqlServer 由于未在SqlServer的此实例上安装复制组件解决方法
qlserver2005在复制订阅时出现:
“由于未在SqlServer的此实例上安装复制组件,Microsoft SQL server 无法访问这些组件,请参阅SQL Server……”
解决方法:
由于需要需要配置一个发布订阅,可是一直报告:" sql server 复制需要有实际的服务器名称才能连接到服务器,不支持通过别名、ip地址或其他任何备用名称进行连接。请指定实际的服务器名称“xxxx”(Replication Utlities)。"
经过一番分析发现是在安装完sql server 后修改过机器名称,运行下面两条语句既可以看出来:
use master
go
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
最后别忘了重新启动服务哦,启动完后,在运行:
use master
go
select @@servername;
select serverproperty('servername')
一切正常,复制也能用了!
以上是引用第一位网友的,按以上方法设置好后,还是一样的提示
解决办法:
在连接数据库时不要使用IP地址方式,在服务器名称输入计算机名称即可
以上是引用第二位网友的方案
我自己试用后,得到的解决方法:
其实按照第一位网友的方式执行后,还要用计算机名登录后,才不会报错。所以计算机名和数据库服务器名一致很重要。