国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 江阴市| 平远县| 张北县| 鹤岗市| 若羌县| 鲁甸县| 冀州市| 贵港市| 陇南市| 滦平县| 海城市| 明溪县| 垦利县| 锦州市| 定边县| 桂平市| 乌拉特后旗| 图木舒克市| 饶阳县| 望奎县| 乌鲁木齐县| 宁德市| 志丹县| 舟山市| 小金县| 松溪县| 黄山市| 民县| 酒泉市| 伽师县| 礼泉县| 桂平市| 富阳市| 开平市| 镇赉县| 宾阳县| 永善县| 横山县| 昭觉县| 开封县| 闵行区|