Sql server &引用;在sys.servers中找不到服务器;删除时,但选择时确定

Sql server &引用;在sys.servers中找不到服务器;删除时,但选择时确定,sql-server,Sql Server,我们的一个链接服务器当前出现问题 如果我运行这段代码,它就会工作 SELECT * FROM [LINKEDSERVER].[databasename].dbo.[tablename] a INNER JOIN [localdb].dbo.[localtable] b on b.somefield = a.somefield 但这失败了 DELETE FROM a FROM [LINKEDSERVER].[databasename].dbo.[tablename] a INNER JOIN

我们的一个链接服务器当前出现问题

如果我运行这段代码,它就会工作

SELECT *
FROM [LINKEDSERVER].[databasename].dbo.[tablename] a
INNER JOIN [localdb].dbo.[localtable] b
on b.somefield = a.somefield
但这失败了

DELETE FROM a 
FROM [LINKEDSERVER].[databasename].dbo.[tablename] a
INNER JOIN [localdb].dbo.[localtable] b
on b.somefield = a.somefield
给出错误:

OLE DB provider "SQLNCLI10" for linked server <servername> returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Msg 7202, Level 11, State 2, Line 1
Could not find server <servername> in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
链接服务器的OLE DB提供程序“SQLNCLI10”返回消息“多步骤OLE DB操作生成错误。检查每个OLE DB状态值(如果可用)。未完成任何工作。”。 Msg 7202,第11级,第2状态,第1行 在sys.servers中找不到服务器。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。 链接服务器确实出现在sys.sysservers中,我已尝试删除并读取链接服务器,但没有效果:

exec sp_dropserver <servername>, droplogins
exec sp_addserver <servername>
exec sp_serveroption <servername>, 'data access' , 'true'
exec sp_dropserver,droplogins
exec sp_addserver
exec sp_服务器选项,“数据访问”,“真”
链接服务器是SQL 2005,链接服务器是2008R2


如果这是相关的(而且似乎是可能的),我最近迁移了我们链接到新硬件的SQL server(使用新的SQL安装等),并将新硬件服务器的IP更改回旧服务器的IP以保持连续性。在所有其他方面,这都很有效。我们在旧服务器上从未遇到过此问题。

Hi@DanBennett..您找到解决此问题的方法了吗?对不起,这是几年前的事了,我都记不起来了。我想我的下一步将是尝试在保存我想要删除的表的服务器上运行代码。显然,这并不是在所有情况下都有效。总的来说,我会出于各种原因尽量避免使用链接服务器,当然,你并不总是可以选择——有时你会继承一些东西。