SQL 跨服务器查询

直接上干货..

语法:

Select * From OPENDATASOURCE(‘SQLOLEDB‘,‘Data Source=Your DB IP;User ID=UserName;Password=Pwd‘).DBName.dbo.TableName

相信有了这语法.. 一眼就能看明白这是怎么回事儿..

如果报错:

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

--打开 Ad Hoc Distributed Queries
--两个 reconfigure是必须的
exec sp_configure ‘show advanced options‘,1
reconfigure
exec sp_configure ‘Ad Hoc Distributed Queries‘,1
reconfigure 

--T_SQL
Select * From OPENDATASOURCE(‘SQLOLEDB‘,‘Data Source=Your DB IP;User ID=UserName;Password=Pwd‘).DBName.dbo.TableName

--重新关闭 Ad Hoc Distributed Queries
exec sp_configure ‘Ad Hoc Distributed Queries‘,0
reconfigure
exec sp_configure ‘show advanced options‘,0
reconfigure

该配置项需要你的当前登录用户有足够的权限..sa可以..本地登录也可以..

但是一般项目里有几个直接使用sa的? 一般对于数据库的 DB_Owner 是不行的..

要对于服务器的管理权限..也就是服务器角色 中.. 大概得要 sysadmin  权限吧? 试试..

时间: 2024-12-15 01:35:05

SQL 跨服务器查询的相关文章

SQl 跨服务器查询脚本示例

1.采用OPENDATASOURCE select top 10 *from OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=连接用户名称;Password=连接用户密码' ).远程目标数据库.dbo.表名 2.采用联结服务器 --创建linkServer exec sp_addlinkedserver '别名','','SQLOLEDB','IP地址' --登陆linkServer exec sp_addlinkedsrvlogin '别

sql serve 跨服务器查询数据方法

 今天在做sql server 的数据查询时,需要用到跨服务器连接,在这里记录一下,如何在sql server 中,使用跨服务器查询的方法,有以下步骤. /* 创建中间数据库链接 exec sp_addlinkedserver 'MiddleData', ' ', 'SQLOLEDB', '数据库连接实例,或者IP' exec sp_addlinkedsrvlogin 'MiddleData', 'false',null, '数据库连接帐号', '数据库连接密码' */ 创建好连接之后,就可

跨服务器查询sql语句样例(转)

若2个数据库在同一台机器上: insert into DataBase_A..Table1(col1,col2,col3----) select col11,col22,col33-- from DataBase_B..Table11 若不在同一台机器上,则是本文要讲的内容: ----------------------------------------------------------------------------------------- 跨服务器查询sql语句样例 INSERT

缓存一致性和跨服务器查询的数据异构解决方案canal

当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观,由此引入的问题,不见得你有好的解决方案,下面就具体分享下. 一:尽可能的使用Cache 比如在我们的千人千面系统中,会针对商品,订单等维度为某一个商家店铺自动化建立大约400个数据模型,然后买家在淘宝下订单之后,淘宝会将订单推 送过来,订单会在400个模型中兜一圈,从而推送更贴切符合该买家行为习惯的

数据异构解决方案缓存一致性和跨服务器查询

缓存一致性和跨服务器查询的数据异构解决方案canal 当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观,由此引入的问题,不见得你有好的解决方案,下面就具体分享下. 一:尽可能的使用Cache 比如在我们的千人千面系统中,会针对商品,订单等维度为某一个商家店铺自动化建立大约400个数据模型,然后买家在淘宝下订单之后,淘宝会将订单推 送过来,订单会在4

SQLServer 跨服务器查询的两个办法

网上搜了跨服务器查询的办法,大概就是Linked Server(预存连接方式并保证连接能力)和OpenDataSource(写在语句中,可移植性强).根据使用函数的不同,性能差别显而易见...虽然很简单,但是lz被坑了几天才发现,惭愧. 1. Linked Server 非常实用的功能,添加方法如果有问题可以单独联系lz,不是很复杂的~ 使用方法一: 1 select * from LinkedServer1.table1 但是这个办法的执行却是和OpenDataSouce一样的,就是把对方服务

开启MSSQLServer跨服务器查询功能

首先在MSSQL客户端中进行如下图文操作配置 其次使用脚本进行操作配置 ---开启SQLServer 跨服务器查询功能 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure --关闭SQLServer 跨服务器查询功能 exec sp_configure 'Ad Hoc Distributed Queries',0 r

SQL SERVER 数据库跨服务器查询插入数据

SQLserver的分布式查询:如果一个项目需要二至多台服务器,而我们又必须从几台服务器中将数据取出来,这就必须用分布式查询!在这里有两个概念:本地数据源.远程数据源!本地数据源指的是单个服务器上的数据而远程数据源指的是另一个SQL实例上的数据.如何跨服务器取数呢?一.如果经常访问或数据量大,建议用链接服务器--创建链接服务器exec sp_addlinkedserver ''srv_lnk'','''',''SQLOLEDB'',''远程服务器名或ip地址''exec sp_addlinked

sql跨库查询

---------------------------------------------------------------------------------- --1. 创建链接服务器 --1.1 创建一个链接名 EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB','远程服务器名或ip地址' --有自定义实例名还要加上"\实例名" /*例如:EXEC sp_addlinkedserver 'TonyLink','','SQLOLEDB