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_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分布式查询

时间: 2024-08-06 05:41:11

SQL分布式查询、跨数据库查询的相关文章

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 Server安全跨数据库所有权链接

本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applications with connections from a dizzying array of clients over widely distributed networks,特别是互联网,使得数据几乎向任何人,任何地方开放.数据库可以包含相当大部分的人类知识,包括高度敏感的个人信息和关键数据.数据库的

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

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

ACCESS-如何多数据库查询(跨库查询)

测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 =======================================我有两个数据库 A.B 然后我要将两个数据库的两张表组合作为一张表C显示 判断条件是 A数据库的aa表中字段a和B数据库的bb表中字段b相等 并且A数据库的aa表中字段a或B数据库的bb表中字段b等于某个值 示例:sql="select b.filetitle as

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

【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)

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