Rei*_*l-- 4 sql-server rename linked-server
我即将将我的 SQL Server 2012 实例升级到 SQL Server 2014。
我已经克隆了主机的Windows虚拟机,并从它改名foo-2012到foo-2014。重新启动时,SQL Server 实例注意到它更新了自己的名称,因此我现在可以以foo-2014. 都好。
不幸的是,(单个)条目sys.servers仍然是foo-2012这意味着运行
SELECT *
FROM [foo-2012].[barDB].[dbo].tFooBarTable
Run Code Online (Sandbox Code Playgroud)
失败:
在 sys.servers 中找不到服务器“RW-DB-2014”。验证是否指定了正确的服务器名称。如有必要,请执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。
美好的。
我运行EXEC sp_addlinkedserver 'foo-2014', 'SQL Server'并获得一个条目。
但是现在新条目具有isLinked=1(而现有条目具有isLinked=0)。
文档表明此设置很重要(特别是对于我的应用程序,它对 Distr.Trans 有很强的意见。:()
我无法直接编辑/添加/修改 sys.servers。任何这样做的尝试都会给出:
不允许对系统目录进行临时更新。
我删除了EXEC sp_dropserver 'foo-2014'成功的新条目 ( ),并尝试使用EXEC sp_addserver 'foo-2014', 'local'which 报告
服务器 'foo-2014' 已经存在
立即重新运行 drop 然后报告
服务器“RW-DB-2014”不存在。使用 sp_helpserver 显示可用的服务器。
我该如何解决?
您需要首先删除旧服务器,foo-2012以便在 中没有行sys.servers,然后使用以下内容进行添加'local':
EXEC sp_dropserver 'foo-2012';
GO
EXEC sp_addserver 'foo-2014', 'local';
GO
Run Code Online (Sandbox Code Playgroud)
然后,您需要重新启动 MSSQLSERVER 服务以使更改生效,根据sp_addserver的文档:
本地定义只有在数据库引擎重启后才会生效。
| 归档时间: |
|
| 查看次数: |
7185 次 |
| 最近记录: |