SqlServer分布式跨数据库查询Join

--step1 创建链接服务器
exec sp_addlinkedserver     'srv_lnk','','SQLOLEDB', 'ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sql登陆名', '密码'
--exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB', '192.168.1.58'
--exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sa', '123456' 

--step2 应用:查询
select * from srv_lnk.数据库名.dbo.表
--select * from srv_lnk.erp.dbo.t1192

--step2 应用:导入
select * into 表 from srv_lnk.数据库名.dbo.表名
select * into ttt from srv_lnk.erp.dbo.t1192

--step3 删除连接:以后不再使用时删除链接服务器
exec sp_dropserver  'srv_lnk ', 'droplogins ' 

--连接远程/局域网数据(openrowset/openquery/opendatasource) 

--【方法2】2.1、openrowset 

--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
---select * from openrowset( 'SQLOLEDB ', '192.168.1.58 '; 'sa '; '123123 ',erp.dbo.t1192)

--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) select *from 本地表 

--更新本地表
update b set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a
inner join 本地表 b on a.column1=b.column1 

--【方法3】2.2 openquery用法需要创建一个连接 

--首先创建一个连接创建链接服务器
exec sp_addlinkedserver   'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--exec sp_addlinkedserver   'srv_lnk ', ' ', 'SQLOLEDB ', '192.168.1.58 ' 

--查询
select * FROM openquery(srv_lnk,  'SELECT *  FROM 数据库.dbo.表名 ')
--select * from openquery(srv_lnk,'select * from test.dbo.t1000')

--把本地表导入远程表
insert openquery(srv_lnk,  'SELECT *  FROM 数据库.dbo.表名 ') select * from 本地表 

--更新本地表
update b set b.列B=a.列B
FROM openquery(srv_lnk,  'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A 

--【方法4】2.3、opendatasource/openrowset
SELECT   * FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).数据库名.dbo.表名
select * from opendatasource('sqloledb','date source=192.168.1.58;user Id=sa;password=123456').test.dbo.h1000
SqlServer分布式查询

原文地址:https://www.cnblogs.com/yunle/p/4572327.html

原文地址:https://www.cnblogs.com/norain/p/DCS_Join.html

时间: 2024-08-01 14:21:19

SqlServer分布式跨数据库查询Join的相关文章

Sqlserver分布式跨数据库查询、Join,以及分布式事务

简言: 这篇文章我要谈一谈SQL Server分布式跨服务器查询,多表Join,以及分布式事务的处理 SqlServer跨服务器查询的方式 以往自己才疏学浅,学习了一波之后,在这记录下来. 1. 使用sp_addlinkedserver和sp_addlinkedsrvlogin存储过程添加linkserver和登录 --别名 //ip地址 exec sp_addlinkedserver 'interlink','','SQLOLEDB', 'xxx.xxx.xx.xx' --别名 --登录名 -

SQL Server 跨数据库查询

不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时

爆料:为什么Entity Framework不能进行跨数据库查询

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 在上篇随笔中提到"对于跨数据库查询,我们没有找到通过LINQ to Entities实现的方法".后来仔细想想,从理论来讲,实现跨数据库查询应该不难啊,与非跨数据库查询相比,只是多了个数据库名,比如下面的非跨数据库查询语句: SELE

如何使用JDBC Request跨数据库查询后引用查询的结果作为下一个JDBC Request的入参

[前言] 今天来给大家介绍下如何使用JDBC Request跨数据库查询后引用查询的结果作为下一个JDBC Request的入参! 因为我现在所测的系统模块中部分表在不同的数据库中,所以在用JDBC Request查询数据的时候遇到了这么一个跨数据库查询的问题,现在我就来说下我今天使用的办法,希望有不足之处大家多多指导下! 1.首先我们点击测试计划添加配置元件->JDBC Connection Configuration 2.然后我们新建一个线程组A,在线程组A下新建一个JDBC Request

SQL分布式查询、跨数据库查询

--[方法1]连接服务器方法 --step1 创建链接服务器 exec sp_addlinkedserver     'srv_lnk','','SQLOLEDB', 'ip地址' exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sql登陆名', '密码' --exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB', '192.168.1.58' --exec sp_addlinkedsrvlogi

oracle 开发笔记“跨数据库查询复制”

1.方法一:创建DBL(data base link) CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USING '(DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))     )     (CONNECT_DATA =(SERVICE_NAME =

【SQL Server】同一服务器上的跨数据库查询

数据库情况: --aDB  表A --bDB  表B 那么在aDB查询bDB的数据 1 select * from bDB.dbo.B 也可以轻松写出以下语句 1 select UserId from A where UserId in (select UserId from bDB.dbo.B)

Oracle如何实现跨数据库查询

转发:http://www.linuxidc.com/Linux/2012-02/53974.htm 实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中. 二. 实现方法步骤: 1. 创建存储过程 2. 在存储过程中先创建database link 3. 创建成功 4. 从另一个数据库取出数据插入到当前数据库中 5. 任务完成 三. 创建DBLINK的方法: 1. create publ

sql跨数据库查询方法

http://www.cnblogs.com/xingluzhe/archive/2012/02/01/2334311.html SELECT u_name     FROM OPENROWSET('sqloledb','DRIVER={SQL Server};SERVER=119.48.48.152;UID=y_ydgl;PWD=55555////\',DB.dbo.y_users)  where u_name='1'   UNION   allSELECT u_name     FROM O