如何做涉及不同服务器的两个SQL数据库的查询

如何做涉及不同服务器的两个SQL数据库的查询,第1张

这个简单,使用

sqlserver

OPENDATASOURCE

函数,开启另外一个数据的临时链接就可以了。不过那台服务器的数据库必须开启了IP访问。

方法1,使用数据库连接

创建个数据连接:create database link leexis connect to test identified by test using'orcl'

然后table1@数据库链接名,这样,需要将数据从A传到B

方法2

需要物化视图。这样会提高查询速度,在B数据库创建个物化视图

对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。

举个例子:

在复制环境下,创建的物化视图通常情况下主键,rowid,和子查询视图。

create database link leexis connect to test identified by test using'orcl'

SQL>create table emp as select * from hr.employees

SQL>alter table emp add primary key(employee_id)

.主键物化视图:

下面的语法在远程数据库表emp上创建主键物化视图

CREATE MATERIALIZED VIEW mv_emp_pk

REFRESH FAST ON COMMIT

WITH PRIMARY KEY AS SELECT * FROM emp@leexis

注意:当用FAST选项创建物化视图,必须创建基于主表的视图日志,如下:

CREATE MATERIALIZED VIEW LOG ON emp

可以这样做:比如有两个TADODataSet组成主细表

adsMain和adsDetail,需要加上一个TDataSource对象用于连接主表的DataSet,然后设置adsDetail的DataSource为主表的DataSource,最后写各自的CommandText:主表为:select

*

from

主表细表:select

*

from

细表

where

关联字段=:关联字段

查看原帖>>


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/356191.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存