You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中读取远程数据库数据失败,求正确解决方法

解决远程SQL Server数据库查询问题

错误原因

你写的USE [172.16.10.118]完全无效——USE命令仅用于切换本地SQL实例内的数据库,无法直接指向远程服务器的IP。同时,在未建立远程连接的情况下,本地实例根本识别不了[AGD]这个远程数据库,所以查询必然失败。

三种可行解决方案

方案1:创建链接服务器(推荐,适合频繁查询)

先在本地实例中创建指向远程服务器的链接,之后就可以像访问本地库一样查询远程数据:

-- 1. 创建链接服务器(自定义名称RemoteAGD)
EXEC sp_addlinkedserver   
   @server = 'RemoteAGD',
   @srvproduct='',
   @provider='SQLNCLI',
   @datasrc='172.16.10.118';

-- 2. 配置远程登录凭证
EXEC sp_addlinkedsrvlogin   
   @rmtsrvname='RemoteAGD',
   @useself='FALSE',
   @rmtuser='payrol',
   @rmtpassword='p_11t@x123';

之后执行查询:

SELECT AID, UID, VoteCode
FROM RemoteAGD.AGD.dbo.Assignments;

方案2:用OPENROWSET直接查询(适合临时查询)

无需提前创建链接,直接在查询语句中嵌入远程连接信息:

-- 先开启Ad Hoc分布式查询配置(仅需执行一次)
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

-- 执行远程查询
SELECT AID, UID, VoteCode
FROM OPENROWSET(
   'SQLNCLI',
   'Server=172.16.10.118;Database=AGD;Uid=payrol;Pwd=p_11t@x123',
   'SELECT AID, UID, VoteCode FROM dbo.Assignments'
);

方案3:直接连接远程实例执行查询

在SSMS或其他数据库工具中,用你提供的连接字符串新建一个连接,直接连接到172.16.10.118的AGD数据库,然后执行简化后的查询:

SELECT AID, UID, VoteCode
FROM dbo.Assignments;

内容的提问来源于stack exchange,提问作者Miiro Bels

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 00:12:54