日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
不同服務(wù)器不同數(shù)據(jù)庫兩張表連接查詢使用經(jīng)驗

使用SQL語句連接查詢位于兩個不同的服務(wù)器不同的數(shù)據(jù)庫中的兩張表,最初將SQL語句寫成以下形式 

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出潮州免費做網(wǎng)站回饋大家。

  
 
 
  1. select * from Product p inner join 
  2. opendatasource('SQLOLEDB','Data Source=Macaco-Online;user ID=sa;password=sa密碼;').Company.dbo.Product p2  
  3. on P.PID=p2.PID  
  4. go  

 執(zhí)行時出現(xiàn)錯誤提示: 

----------------------------------------------------------------- 

消息 15281,級別 16,狀態(tài) 1,第 1 行 SQL Server 阻止了對組件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的訪問,因為此組件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用 sp_configure 啟用 'Ad Hoc Distributed Queries'。有關(guān)啟用 'Ad Hoc Distributed Queries' 的詳細(xì)信息,請參閱 SQL Server 聯(lián)機(jī)叢書中的 "外圍應(yīng)用配置器"。 

----------------------------------------------------------------- 

嗯,這個提示似乎很明確,從上面的提示我們可以知道只要啟用外圍應(yīng)用配置器的Ad Hoc Distributed Queries組件即可,隨即把自己機(jī)器上數(shù)據(jù)庫服務(wù)器的外圍應(yīng)用配置器打開,找到Ad Hoc Distributed Queries組件并將其啟用(啟用步驟:右擊自己的數(shù)據(jù)庫服務(wù)器,在右鍵菜單中選擇“方面” 在彈出的的窗口中有一個名為方面的下拉列表先項點開后選擇“外圍應(yīng)用配置器”選項,然后在下面的方面屬性窗口中將AdHocremoteQueriesEnabled的狀態(tài)改成true點擊確定即要可)。

現(xiàn)在就可以執(zhí)行上面的應(yīng)該查詢語句了。

但是,這似乎并不能滿足我們的需要 

例如:我們要在自己的程序中做這樣的的查詢那該怎么辦呢?總不能一直這樣開著吧,這可是對服務(wù)器有安全損耗的。嗯,我可不會就這樣把自己服務(wù)器的安全級別降低哦。

好吧,我們現(xiàn)在需要使用SQL命令來啟用和禁用這個組件,但是怎么做呢? 不要急再分析一下上面出錯時的提醒我們便可以知道使用SP_Configure便可以啟用禁用這個組件了,現(xiàn)在改變我們的SQL命令如下所示:

  
 
 
  1. exec sp_configure 'show advanced options',1  
  2. reconfigure  
  3. exec sp_configure 'Ad Hoc Distributed Queries',1  
  4. reconfigure  
  5. go  
  6.  
  7. select * from Product p inner join 
  8. opendatasource('SQLOLEDB','Data Source=Macaco-Online;user ID=sa;password=sa密碼;').Company.dbo.Product p2  
  9. on P.PID=p2.PID  
  10. go  
  11.  
  12. exec sp_configure 'Ad Hoc Distributed Queries',0  
  13. reconfigure  
  14. exec sp_configure 'show advanced options',0  
  15. reconfigure  
  16.    
  17.  
  18. go   

嗯,這樣我們就可以在需要啟用這樣組件的時候啟用即可(注:Ad Hoc Distributed Queries是高級配置所以需要先啟用Show advanced options ,也就是說無論你是要啟用Ad Hoc Distributed Queries,還是禁用都必須保證show advanced options為啟用狀態(tài))有些朋友便疑惑了,你這樣又是存儲過程,又是SQL語句的,我在程序里該執(zhí)行什么類型的命令???呵呵,其實, SqlCommand對象執(zhí)行命令時,就象是我們用Microsoft SQL Server Management Studio新建了一個查詢窗口一樣,在這個查詢窗口里,你可以執(zhí)行什么 SqlCommand對象就可以執(zhí)行什么,所以你只要將上面的sql命令中的換行符替換成空格組成一串字符串然后把他賦值給SqlCommand對象的CommadnTest屬性,然后執(zhí)行就可以了(哦,好像我還沒有使用這種方法創(chuàng)建數(shù)據(jù)庫,不過如果你連接數(shù)據(jù)庫使用的用戶權(quán)限足夠的話,應(yīng)該也沒有什么問題!)

原文鏈接:http://www.cnblogs.com/macacoonline/archive/2011/02/25/1964674.html

補(bǔ)充閱讀:

來源:博客園

作者:鄒澤棟

1,一個服務(wù)器中兩個不同數(shù)據(jù)庫的兩個表查詢

  select * from 數(shù)據(jù)庫1.表名 A,數(shù)據(jù)庫2.表名 b on A.Id=B.Ids

2,同一庫中兩表或多表的查詢方式

  兩表查詢 select * from TB1 left join TB2 On tb1.where = tb2.where 或者 select * from TB1 ,TB2  where tb1.where = tb2.where

    多表查詢    select * from tb1 left  join tb2  on tb1.where =tb2.where inner join tb3 on (tb3.wehre = tb2.where) inner join tb4.......................

  cross join:是笛卡兒乘積,在沒有任何條件約束下就是一張表的行數(shù)乘以別一張表的行數(shù)。
  left join:返回“表名1”的全部行,對于“表名2”中,不滿足on條件的記錄用空值替換。
  rigth join:返回“表名2”的全部行,對于“表名1”中,不滿足on條件的記錄用空值替換。
  full join:返回兩張表中的所有記錄,對于不滿足on條件一端的記錄用空值替換。
  inner jon:只返回兩張表中都滿足on條件的記錄

原文鏈接:http://www.cnblogs.com/zouzedong/archive/2011/02/27/1966534.html

【編輯推薦】

  1. 一些常用的SQL語句
  2. 查詢表結(jié)構(gòu)的SQL語句
  3. 使用SQL語句查詢時間段
  4. 巧用SQL語句刪除重復(fù)記錄
  5. 判斷字段是否存在的SQL語句寫法

新聞標(biāo)題:不同服務(wù)器不同數(shù)據(jù)庫兩張表連接查詢使用經(jīng)驗
瀏覽路徑:http://www.dlmjj.cn/article/dpgoodi.html