SQL 远程查询

方法一:
语句:
      select * 
      from opendatasource('SQLOLEDB','Password=密码;Persist Security Info=True;User ID=用户名;Data Source=数据库服务器').数据库.dbo.表名

运行后提示错误:
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

解决:

--启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

select * 
      from opendatasource('SQLOLEDB','Password=密码;Persist Security Info=True;User ID=用户名;Data Source=数据库服务器').数据库.dbo.表名

--   使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

方法二:

Exec sp_droplinkedsrvlogin 数据库服务器,Null
Exec sp_dropserver 数据库服务器

EXEC  sp_addlinkedserver
      @server='数据库服务器',
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='数据库'


EXEC sp_addlinkedsrvlogin
     '数据库服务器',
     'false',
     NULL,
     '用户名',
     '密码'
查询:Select   *   from 数据库服务器.数据库.dbo.表名

运行后错误:  

 命名管道提供程序: 无法打开与 SQL Server 的连接 [53].
解决:
      暂时没有找到方法。网上的方法都试过几个都不行。

原文地址:https://www.cnblogs.com/icebutterfly/p/1544650.html