首页假如我们有3台服务器,分别是操作数据库的服务器A,第二台服务器B192.168.1.136,第三台服务器C192.168.1.125
注:关闭服务器上的防火墙(查询出错的话)
我们在A服务器上建立UserA数据库的User_TA表,B上建立UserB数据库的User_TB表,C上建立UserC数据库的User_TC表
User_TA表:
User_TB表:
User_TC表:
实例代码:
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_Bas(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_Cas ( 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
这样就是实现了跨服务器,跨数据库多表联查了
新闻热点
疑难解答