国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

跨服務(wù)器、跨數(shù)據(jù)庫、多表聯(lián)合查詢

2024-07-21 02:47:09
字體:
供稿:網(wǎng)友
跨服務(wù)器、跨數(shù)據(jù)庫、多表聯(lián)合查詢
  • 最近項目用到了跨數(shù)據(jù)庫的多表聯(lián)查,項目用的是MVC4+EF,項目用到了很多數(shù)據(jù)庫,每一個數(shù)據(jù)庫都得建一個edmx文件,造成了項目的大量的edmx文件,這樣給人一種項目很龐大很復(fù)雜,無疑間加劇了程序員編寫代碼的復(fù)雜度。
  • 如果是不同的服務(wù)器上的多表聯(lián)查的話,會更加復(fù)雜。
  • 下面我講一講我自己的思路:

首頁假如我們有3臺服務(wù)器,分別是操作數(shù)據(jù)庫的服務(wù)器A,第二臺服務(wù)器B192.168.1.136,第三臺服務(wù)器C192.168.1.125

注:關(guān)閉服務(wù)器上的防火墻(查詢出錯的話)

我們在A服務(wù)器上建立UserA數(shù)據(jù)庫的User_TA表,B上建立UserB數(shù)據(jù)庫的User_TB表,C上建立UserC數(shù)據(jù)庫的User_TC表

 

User_TA表:

1

User_TB表:

2

User_TC表:

3

 

實例代碼:

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

上面的代碼雖然可以查詢出來,但是給人一種繁瑣的感覺,那么我們應(yīng)該如何簡化它呢,就想到了視圖。

首先將服務(wù)器B和C 的表在服務(wù)器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

這樣就是實現(xiàn)了跨服務(wù)器,跨數(shù)據(jù)庫多表聯(lián)查了


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 林芝县| 阳城县| 亚东县| 康乐县| 平罗县| 吴堡县| 宜春市| 惠来县| 翁源县| 汶上县| 石嘴山市| 明光市| 涿州市| 包头市| 桦甸市| 万全县| 松溪县| 临泉县| 孟村| 台南市| 天峻县| 内黄县| 扎赉特旗| 康乐县| 石狮市| 崇信县| 东乡县| 绵阳市| 武山县| 四子王旗| 新绛县| 沙洋县| 同心县| 米脂县| 深州市| 思南县| 宁城县| 沈阳市| 东阳市| 修武县| 河池市|