• 最近项目用到了跨数据库的多表联查,项目用的是MVC4+EF,项目用到了很多数据库,每一个数据库都得建一个edmx文件,造成了项目的大量的edmx文件,这样给人一种项目很庞大很复杂,无疑间加剧了程序员编写代码的复杂度。
  • 如果是不同的服务器上的多表联查的话,会更加复杂。
  • 下面我讲一讲我自己的思路:

首页假如我们有3台服务器,分别是操作数据库的服务器A,第二台服务器B192.168.1.136,第三台服务器C192.168.1.125

注:关闭服务器上的防火墙(查询出错的话)

我们在A服务器上建立UserA数据库的User_TA表,B上建立UserB数据库的User_TB表,C上建立UserC数据库的User_TC表

--创建链接服务器

exec sp_addlinkedserver 'server_tmp','','SQLOLEDB','远程服务器名或ip地址'
 
exec sp_addlinkedsrvlogin 'server_tmp','false',null,'用户名','密码'
 
exec sp_serveroption 'server_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
go
--调用:

exec server_tmp.数据库名.dbo.过程名 '参数'
--------------------- 
作者:cmx8818 
来源:CSDN 
原文:https://blog.csdn.net/cmx8818/article/details/81738751 
版权声明:本文为博主原创文章,转载请附上博文链接!

User_TA表:

User_TB表:

User_TC表:

前提先建立链接服务器

https://blog.csdn.net/goodshot/article/details/78686688

实例代码:

select * from
(
select*
from opendatasource
('SQLOLEDB','Data Source=192.168.1.136;User ID=sa;Password=000'
).UserB.dbo.UserTB as t1
) as tt1join(
select*
from opendatasource
('SQLOLEDB','Data Source=192.168.1.125;User ID=sa;Password=123'
).UserC.dbo.User_TC as t1
) as tt2 on tt1.UserID=tt2.UserID

上面的代码虽然可以查询出来,但是给人一种繁琐的感觉,那么我们应该如何简化它呢,就想到了视图。

首先将服务器B和C 的表在服务器A生成视图

create View View_User_B
as
(
select*
from opendatasource
('SQLOLEDB','Data Source=192.168.1.136;User ID=sa;Password=000'
).UserB.dbo.UserTB as t1
) as tt1
)create View View_User_C
as
(select*
from opendatasource
('SQLOLEDB','Data Source=192.168.1.125;User ID=sa;Password=123'
).UserC.dbo.User_TC as t1
)

那么我们就可以简化查询了:

select * from dbo.View_User_B as  t1  join View_User_C as t2 on t1.UserID=t2.UserID

这样就是实现了跨服务器,跨数据库多表联查了

跨服务器、跨数据库、多表联合查询相关推荐

  1. Android Sqlite数据库多表联合查询

    Android Sqlite数据库多表联合查询示例 工作上用数据库存储文件还是很便利的,所以有时候发现一张表存储数据感觉数据结构不是很清晰的时候,就需要新加第二张表或者多张表来进行联合查询对象信,一般 ...

  2. 数据库多表联合查询附简单例子

    多表联合查询 多表联合查询可以通过连接运算实现,而连接运算又可以通过广义笛卡尔积后在进行选择运算来实现. Select 多表联合查询语句 Select 列名 [[,列名]...] from 表名1,表 ...

  3. 数据库多表联合查询和分组查询

    ---------------------  多表联合查询 理论依据:笛卡尔积 通过笛卡尔乘积,把两个或者多个表变为一个大表,里面包含了有效的,无效的记录(需要加条件进行过滤数据) 例如:查询学生的姓 ...

  4. oracle数据库多表联合查询

    高级查询(多表连接查询): 等值连接    select s.sname,e.cno,e.degree from student s,score e where s.sno=e.sno; 左外连接 l ...

  5. sql server 链接服务器 改访问接口_跨服务器链接数据库?其实很简单!(上)

    今天给大家来分享一下跨服务器操作数据库,还是以SQL Server的管理工具(SSMS)为平台进行操作. 什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库 ...

  6. sql语句跨服务器跨数据库执行

    加为好友 发送私信 在线聊天 wuyi8808 空军 等级: 可用分等级:富农 总技术分:47189 总技术分排名:187 发表于:2009-04-15 21:38:422楼 得分:0 sql语句跨服 ...

  7. cad与连接mySQL数据库_跨服务器操作数据库?其实很简单!(下)

    之前一篇文章一步一步的教小伙伴们如何建立SQL Server的数据库链接(DBLINK),详细步骤可查看上篇:跨服务器操作数据库?其实很简单!(上) 今天我们来教大家如何连接MYSQL和Oracle的 ...

  8. android sqllite数据库的多表联合查询

    Android数据库有时候需要多表联合查询,经过学习,可以用以下代码 Currsor = db.rawQuery("select * from tablea as a left outer ...

  9. Oracle数据库经典案例之学生选课四表联合查询

    四表联合查询之学生选课查询 问题及描述: 学生和成绩表 学生是主表,成绩是子表 课程和成绩表 课程是主表,成绩是子表 老师和课程表 老师是主表,课程是子表 1.学生表 Student(S#,Sname ...

  10. mysql教程详解之多表联合查询_详解数据库多表连接查询的实现方法

    详解数据库多表连接查询的实现方法 通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数据库管理系统中,表建立时各数据之间的关系不必 ...

最新文章

  1. 在用交叉熵损失函数时,只希望惩罚0.4-0.6这样模糊的值,应该怎么改?
  2. 特约专栏丨孙茂松教授——自然语言处理一瞥:知往鉴今瞻未来
  3. jvm--动态对象年龄判定
  4. 评估指标:ROC,AUC,Precision、Recall、F1-score
  5. 一文揭秘定时任务调度框架quartz
  6. CV之IS:计算机视觉之图像分割(Image Segmentation)/语义分割算法的简介、使用方法、案例应用之详细攻略
  7. 剑指offer の 1-10 之javascript实现
  8. jQuery库与其他JS库冲突的解决办法
  9. 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)
  10. Java基于注解和反射导入导出Excel
  11. Python for循环中使用index索引
  12. 超详细域名和二级域名、子域名免费配置SSL证书变成升级HTTPS(完整配置文件)
  13. win10设置linux虚拟网卡,win10系统安装虚拟网卡的详细步骤
  14. react ant-design自定义图标
  15. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)
  16. 你的杀毒软件可以扔掉了
  17. 工具栏的打印图标不见了_电脑工具栏图标不见了怎么办啊
  18. html+css(锚点的使用)
  19. android 4g wifi热点,WIFI热点部署+
  20. 论文翻译:Pose estimation at night in infrared images using a lightweight multi-stage attention network

热门文章

  1. Unity3d发布webplayer 部署到IIS
  2. 虚拟机单一网卡设置两个IP
  3. Sql Server 远程过程调用失败
  4. 【转】使用notepad运行python
  5. 【OpenCV学习笔记】【教程翻译】二(车牌识别算法框架)
  6. 网易编程题目——相反数:
  7. eclipse启动失败,报an error has occurred.see the log file错
  8. 关于numpy的一些矩阵运算——tile函数
  9. 三维激光扫描数据处理理论及应用
  10. ArcGISEngine二次开发(2):地图制图