首页 新闻 搜索 专区 学院

sql跨数据库查询数据

0
悬赏园豆:30 [已解决问题] 解决于 2009-12-11 13:49

本地数据库有a库 b库

现在我要从a库的环境下 查询 b库里面的某一张表里面的数据

又或者我在 a库里面写了一个查询b库某一张表数据的 存储过程  怎么能让a库的存储过程执行成功!

 

      请赐教!!!

问题补充: sql 2005
白了头发就是代价的主页 白了头发就是代价 | 初学一级 | 园豆:7
提问于:2009-12-03 16:40
< >
分享
最佳答案
0

 SELECT    *   FROM   OPENDATASOURCE ('SQLOLEDB', 'Data Source=b库连接字符串;User ID=sa;Password=sa' ).P2.dbo.Cosplay

换成你的b库连接字符串,最后的P2.dbo.Cosplay替换成你的 库名.所有者.表名

收获园豆:15
第一控制.NET | 小虾三级 |园豆:1245 | 2009-12-03 17:08
其他回答(3)
0

如果是oralce的情況

可以使用db_link,同義字

create database link bb
connect to b(用戶名)
identified by psd(password)

增加D:\Oracle\Oracle\network\ADMIN

下tnsnames.ora裡面的字符連接

select * from test_table@bb

收获园豆:5
woody.wu | 园豆:3621 (老鸟四级) | 2009-12-03 17:03
0

从a库查询b库的表USER的数据
SELECT * FROM dbo.b.USER
跨数据库服务器查询就会麻烦很多,隐约记得存储过程的名字sp_addlinkedserver 大约吧 google一下就OK

收获园豆:5
码尔代夫iimax | 园豆:3138 (老鸟四级) | 2009-12-03 18:10
0

select * from a.[dbo].[表名] a inner join b.[dbo].[表名] b on a.Id = b.Id 

类似这样子来写就ok啦

 非常谢谢,也让我复习了一次

收获园豆:5
西越泽 | 园豆:10633 (专家六级) | 2009-12-03 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册