首頁假如我們有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
這樣就是實現了跨服務器,跨數據庫多表聯查了
新聞熱點
疑難解答