日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验

發(fā)布時(shí)間:2025/4/5 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

opendatasource('SQLOLEDB','Data?Source=Macaco-Online;user?ID=sa;password=sa密碼;').Company.dbo.Product?p2

onP.PID=p2.PID

go

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

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

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

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

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

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

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

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

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

reconfigure

execsp_configure'Ad?Hoc?Distributed?Queries',1

reconfigure

go

select*fromProduct?pinnerjoin

opendatasource('SQLOLEDB','Data?Source=Macaco-Online;user?ID=sa;password=sa密碼;').Company.dbo.Product?p2

onP.PID=p2.PID

go

execsp_configure'Ad?Hoc?Distributed?Queries',0

reconfigure

execsp_configure'show?advanced?options',0

reconfigure

go

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

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

補(bǔ)充閱讀:

來(lái)源:博客園

作者:鄒澤棟1,一個(gè)服務(wù)器中兩個(gè)不同數(shù)據(jù)庫(kù)的兩個(gè)表查詢

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

2,同一庫(kù)中兩表或多表的查詢方式

兩表查詢 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:是笛卡兒乘積,在沒(méi)有任何條件約束下就是一張表的行數(shù)乘以別一張表的行數(shù)。

left join:返回“表名1”的全部行,對(duì)于“表名2”中,不滿足on條件的記錄用空值替換。

rigth join:返回“表名2”的全部行,對(duì)于“表名1”中,不滿足on條件的記錄用空值替換。

full join:返回兩張表中的所有記錄,對(duì)于不滿足on條件一端的記錄用空值替換。

inner jon:只返回兩張表中都滿足on條件的記錄原文鏈接:http://www.cnblogs.com/zouzedong/archive/2011/02/27/1966534.html

【編輯推薦】

總結(jié)

以上是生活随笔為你收集整理的mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。