在我工作的公司,我们目前运行 3xSQL 2005 服务器和 1xSQL 2000 服务器。所有 2005 服务器都可以相互通信,但它们无法与 2000 服务器通信。另一方面,2000 服务器可以与所有 3 个 2005 服务器通信。
当 2005 服务器尝试连接 2000 服务器时,出现以下错误:
链接服务器“2000srv”的 OLE DB 提供程序“SQLNCLI”返回消息“登录超时已过期”。链接服务器“2000srv”的 OLE DB 提供程序“SQLNCLI”返回消息“建立与服务器的连接时发生错误。连接到 SQL Server 2005 时,此失败可能是由于默认设置下 SQL Server 不允许远程连接所致。”。消息 5,级别 16,状态 1,行 0 命名管道提供程序:无法打开与 SQL Server [5] 的连接。
我已确保使用存储过程添加每个服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'2000srv', @srvproduct=N'SQL Server'
然后我使用 sp_testlinkedserver 进行了测试。除了 2005 服务器尝试连接到 2000 服务器外,其他所有服务器都通过了测试。
您会推荐遵循哪些建议和可能的解决方案来解决此错误?
答案1
系统存储过程无法通过 SQL2000 SP3/SP4 正确更新,您必须手动运行 instcat.sql。 http://support.microsoft.com/default.aspx?scid=kb;en-us;906954