SQL查询多个数据库

前端之家收集整理的这篇文章主要介绍了SQL查询多个数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个sql server上有两个数据库,我必须将两个表从一个DB服务器链接到另一个DB服务器的两个表,以获取我需要的信息.问题是当我尝试从第二个DB服务器链接两个表时,查询返回1000或更多的重复.如何在两个数据库上运行单个查询?所有表都具有common_ord列.有人可以帮帮我吗?谢谢.

服务器1 = CXADMIN
服务器2 = SAADMIN

这是我的查询到目前为止

SELECT RF.REPAIR_ORD,RH.RECV_UNIT,RH.RECV_SERIAL_NBR,RP.FAULT_CODE,RP.REPAIR_ACTION_CODE,CG.TASK_CODE 
  FROM CXADMIN.RO_FAILURE_DTL RF,CXADMIN.RO_HIST RH,saadmin.sa_repair_part@elgsad rp,saadmin.sa_code_group_task_dtl@elgsad cg 
 WHERE RF.REPAIR_ORD = RH.REPAIR_ORD 
   AND RP.REPAIR_ORD = CG.REPAIR_ORD 
   AND RF.FAILURE_CODE ='DISK'
   AND RH.CURR_FACILITY_ID ='23' 
   AND RF.CREATED_DATE >'1-JUN-2010' 
   AND RF.CREATED_DATE <  '1-JUL-2010' 
   AND (   CG.TASK_CODE ='PHMD' 
        OR CG.TASK_CODE ='PHSN' 
        OR CG.TASK_CODE ='CHMD' 
        OR CG.TASK_CODE ='CHSN')

解决方法

我认为重复的问题不是加入这两个数据库,而是加入到第一个.我想你可能需要一个INNER或OUTER连接来处理链接.至于从两个不同的数据库获取数据,语法相当简单.您只需添加服务器名称数据库名称点所有者名称dot表名.

例如:

SELECT firstdb.*,seconddb.*
FROM Server1.Database1.dbo.myTable AS firstdb
INNER JOIN Server2.Database2.dbo.myTable AS seconddb
   ON firstdb.id = seconddb.id

在你的例子中,听起来你正在获得链接的工作,但是在repair_ord字段上有一个加入问题.虽然我不知道你的架构,我猜这个链接应该是内在的.如果您只是在FROM语句中添加两个表,并且不能正确地执行WHERE语句,那么您将遇到麻烦,就像您所描述的那样.

我建议您简化此设置并将其放在测试环境中(在一个数据库中).尝试四桌连接,直到你正确.然后添加数据库调用的复杂性.

原文链接:https://www.f2er.com/mssql/75414.html

猜你在找的MsSQL相关文章