今儿个尝试配置本地订阅的时候,数据库报错,提示不能用现有的服务名,包括重新设置别名,百思不得其解,查阅相关文章后,发现,估计出现这1错误的原因是因为我后面自己修改过计算机的名称导致的
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
比如我最开始计算机名字叫ABC,后来我把计算机名字改成了EFG,但是对于SQL SERVER 2008来说他还是默认的是ABC,至少对于serverproperty来说还是如此,但是@@servername已经变成了EFG
eg:
假设现在服务器名字是TESTSS
执行SELECT @@SERVERNAME得出的结果是EFG\TESTSS
但是执行SELECT SERVERPROPERTY('SERVERNAME')得出的结果是ABC\\TESTSS
这一错误直接导致了发布本地订阅时这一错误的发生
简言之,就是SELECT @@SERVERNAME跟SERVERPROPERTY的值不一致
方法也很简单,设置成一样就可以了,比如:
之后重启下服务即可开启配置