通过存储过程访问另一个 SQL 服务器
Access another SQL Server through stored procedure
我想访问另一个 SQL 服务器,通过存储过程导入和更新该服务器数据库的数据。
为此,我使用 sp_addlinkedserver
创建了链接服务器。
EXEC sp_addlinkedserver
@server = N'LINKEDSERVER'
,@srvproduct=N''
,@provider=N'SQLOLEDB'
,@datasrc=N'[DB-Instance.cuprxxxlj.ap-xxxxxxx-x.rds.amazonaws.com]';
然后尝试通过SQL查询
访问
SELECT *
FROM [LINKEDSERVER].[DATABASE].[dbo].[TABLE]
并出现类似
的错误
OLE DB provider "SQLNCLI11" for linked server "LINKEDSERVER" returned message "Login timeout expired".
OLE DB provider "SQLNCLI11" for linked server "LINKEDSERVER" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
Msg 53, Level 16, State 1, Line 0
Named Pipes Provider: Could not open a connection to SQL Server [53].
我在亚马逊服务器上创建了数据库实例,另一个也在亚马逊服务器上,两者都可以公开访问,但不知道为什么我得到 Server is not found or not accessible
。我是否缺少任何服务器站点设置或其他内容?
如果我走错了方向,请指导我。
也许尝试更改超时设置?
sp_configure 'remote query timeout', 0
go
reconfigure with override
go
本文详细解释了如何 link 一个 AWS Sql 服务器到另一个 (https://aws.amazon.com/blogs/apn/running-sql-server-linked-servers-on-aws/)。我不确定你的情况出了什么问题,但这有很多我在你的描述中没有看到的步骤。
有一件事让我大吃一惊,那就是您还没有配置任何登录 security/access 控件。所以除非目标服务器对世界开放,否则我猜你必须至少添加它。
我找到了答案。问题是一个实例,我创建了 "Amazon RDS for SQL Server" 目前不支持 "Linked servers".
因此,我为 Windows Server 2012 R2 创建了一个新的 AWS EC2 实例,然后在其中创建了链接服务器并尝试进行远程评估。现在一切如我所愿。
此处详细介绍了 document 到 运行 SQL AWS 上的服务器链接服务器
谢谢。
我想访问另一个 SQL 服务器,通过存储过程导入和更新该服务器数据库的数据。
为此,我使用 sp_addlinkedserver
创建了链接服务器。
EXEC sp_addlinkedserver
@server = N'LINKEDSERVER'
,@srvproduct=N''
,@provider=N'SQLOLEDB'
,@datasrc=N'[DB-Instance.cuprxxxlj.ap-xxxxxxx-x.rds.amazonaws.com]';
然后尝试通过SQL查询
访问SELECT *
FROM [LINKEDSERVER].[DATABASE].[dbo].[TABLE]
并出现类似
的错误OLE DB provider "SQLNCLI11" for linked server "LINKEDSERVER" returned message "Login timeout expired".
OLE DB provider "SQLNCLI11" for linked server "LINKEDSERVER" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
Msg 53, Level 16, State 1, Line 0
Named Pipes Provider: Could not open a connection to SQL Server [53].
我在亚马逊服务器上创建了数据库实例,另一个也在亚马逊服务器上,两者都可以公开访问,但不知道为什么我得到 Server is not found or not accessible
。我是否缺少任何服务器站点设置或其他内容?
如果我走错了方向,请指导我。
也许尝试更改超时设置?
sp_configure 'remote query timeout', 0
go
reconfigure with override
go
本文详细解释了如何 link 一个 AWS Sql 服务器到另一个 (https://aws.amazon.com/blogs/apn/running-sql-server-linked-servers-on-aws/)。我不确定你的情况出了什么问题,但这有很多我在你的描述中没有看到的步骤。
有一件事让我大吃一惊,那就是您还没有配置任何登录 security/access 控件。所以除非目标服务器对世界开放,否则我猜你必须至少添加它。
我找到了答案。问题是一个实例,我创建了 "Amazon RDS for SQL Server" 目前不支持 "Linked servers".
因此,我为 Windows Server 2012 R2 创建了一个新的 AWS EC2 实例,然后在其中创建了链接服务器并尝试进行远程评估。现在一切如我所愿。
此处详细介绍了 document 到 运行 SQL AWS 上的服务器链接服务器
谢谢。