gpt4 book ai didi

sql - 在 sys.servers 中找不到服务器 'server name'。 SQL Server 2014

转载 作者:行者123 更新时间:2023-12-02 07:29:31 25 4
gpt4 key购买 nike

我最近将 SQL Server 从 2005 年升级到 2014 年(链接服务器),我注意到调用 exec 命令以在升级后的链接服务器上执行存储过程的存储过程之一失败,并出现错误

Could not find server 'server name' 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.

问题是链接服务器存在,并且我已经完成了测试以确保我可以从链接服务器查询表。以下是我所做的检查,以查看链接服务器是否配置正确。

 - select name from sys.servers -- > Lists the linked server 
- select top 10 * from linkedserver.database.dbo.table --> Gets top 10 records
- exec linkedserver.database.dbo.storedproc --> Executes the stored procedure (I created a test stored procedure on the linked server and I can execute it)

但是,出现错误的失败原因如下

exec linkedserver.database.dbo.failing_storedprocedure  @id,'load ','v2',@file_name, @list_id = @listid output;

我已重新创建链接服务器并启用了 RPC。我已授予存储过程的执行权限。我可以在链接服务器上选择记录并执行其他存储过程,但上面的 exec 失败(它在升级之前有效)。SQL Server 2005 和 SQL Server 2014 之间是否存在语法差异导致此失败?

最佳答案

首先检查您的链接服务器是否在此查询的列表中

select name from sys.servers

如果不存在则尝试添加到链接服务器

EXEC sp_addlinkedserver @server = 'SERVER_NAME' --or may be server ip address

之后登录到该链接服务器

EXEC sp_addlinkedsrvlogin 'SERVER_NAME'
,'false'
,NULL
,'USER_NAME'
,'PASSWORD'

然后你就可以做任何你想做的事情,把它当作你的本地服务器

exec [SERVER_NAME].[DATABASE_NAME].dbo.SP_NAME @sample_parameter

最后,您可以通过

从链接服务器列表中删除该服务器
sp_dropserver 'SERVER_NAME', 'droplogins'

如果对你有帮助,请点赞。

关于sql - 在 sys.servers 中找不到服务器 'server name'。 SQL Server 2014,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35799905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com