主頁(yè) > 知識(shí)庫(kù) > SQL Server 2008數(shù)據(jù)庫(kù)分布式查詢(xún)知識(shí)

SQL Server 2008數(shù)據(jù)庫(kù)分布式查詢(xún)知識(shí)

熱門(mén)標(biāo)簽:AI電銷(xiāo) 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 百度競(jìng)價(jià)排名 服務(wù)外包 Linux服務(wù)器 地方門(mén)戶(hù)網(wǎng)站

在接觸公司一個(gè)系統(tǒng)時(shí),公司使用的是SQL Server 2008數(shù)據(jù)庫(kù),里面涉及到了多個(gè)數(shù)據(jù)庫(kù)之間的查詢(xún),而且數(shù)據(jù)庫(kù)是分布式的,數(shù)據(jù)庫(kù)分布在多臺(tái)服務(wù)器之間,并且各個(gè)數(shù)據(jù)庫(kù)各盡其責(zé),負(fù)責(zé)存放不同模塊功能的數(shù)據(jù)。這里面就要涉及到了數(shù)據(jù)庫(kù)的分布式查詢(xún)。

補(bǔ)充一下分布式查詢(xún)的知識(shí):

分布式查詢(xún)從多異類(lèi)數(shù)據(jù)源中訪問(wèn)數(shù)據(jù)。這些數(shù)據(jù)源可以存儲(chǔ)在同一臺(tái)計(jì)算機(jī)或不同的計(jì)算機(jī)上。Microsoft SQL Server 通過(guò)使用 OLE DB 來(lái)支持分布式查詢(xún)。

SQL Server 用戶(hù)可以使用分布式查詢(xún)?cè)L問(wèn)以下內(nèi)容:

  • 存儲(chǔ)在多個(gè) SQL Server 實(shí)例中的分布式數(shù)據(jù)。
  • 存儲(chǔ)在各種可以使用 OLE DB 訪問(wèn)接口訪問(wèn)的關(guān)系和非關(guān)系數(shù)據(jù)源中的異類(lèi)數(shù)據(jù)。

OLE DB 訪問(wèn)接口將在稱(chēng)為行集的表格格式對(duì)象中公開(kāi)數(shù)據(jù)。SQL Server 允許在 Transact-SQL 語(yǔ)句中像引用 SQL Server 表一樣引用 OLE DB 訪問(wèn)接口中的行集。

外部數(shù)據(jù)源中的表和視圖可以在 SELECT、INSERT、UPDATE 和 DELETE Transact-SQL 語(yǔ)句中直接引用。因?yàn)榉植际讲樵?xún)使用 OLE DB 作為基本接口,因此它們不僅可以訪問(wèn)帶有 SQL 查詢(xún)處理器的傳統(tǒng) DBMS 系統(tǒng),也可以訪問(wèn)復(fù)雜的、具有不同功能的數(shù)據(jù)源所管理的數(shù)據(jù)。只要擁有數(shù)據(jù)的軟件通過(guò) OLE DB 訪問(wèn)接口在表格格式行集中公開(kāi)其數(shù)據(jù),就可在分布式查詢(xún)中使用此數(shù)據(jù)

因?yàn)楣镜臉I(yè)務(wù)要經(jīng)常使用不同服務(wù)器上的數(shù)據(jù)庫(kù),所以公司的數(shù)據(jù)庫(kù)都建立了一堆的鏈接服務(wù)器。通過(guò)建立這些鏈接服務(wù)器,就可以使用這些鏈接服務(wù)器的別名來(lái)簡(jiǎn)化SQL語(yǔ)句的編寫(xiě)和sql開(kāi)銷(xiāo);

使用SQL SERVER 2008管理工具可以直接界面化的添加鏈接服務(wù)器;這里給出使用sql語(yǔ)句,利用系統(tǒng)存儲(chǔ)過(guò)程來(lái)添加鏈接服務(wù)器的方法,這里要用到兩個(gè)存儲(chǔ)過(guò)程:

sp_addlinkedserver
sp_addlinkedsrvlogin

一個(gè)是添加鏈接服務(wù)器,一個(gè)是添加鏈接服務(wù)器連接登陸驗(yàn)證;具體此兩個(gè)存儲(chǔ)過(guò)程參數(shù)含義,請(qǐng)參考微軟手冊(cè);注意,執(zhí)行此存儲(chǔ)過(guò)程登陸的用戶(hù)必須要有Sysadmin權(quán)限才能執(zhí)行;

假設(shè)現(xiàn)在在10.155.25.100 上的db中要使用10.155.24.101上一個(gè) FlieDB01表中的信息;則在10.155.25.100上進(jìn)行如下SQL 語(yǔ)句:

exec sp_addlinkedserver
@server='SZDB01', --要添加的連接服務(wù)器的別名
@srvproduct='',
@provider='SQLOLEDB',--指定通過(guò)SQLOLEDB鏈接
@datasrc='10.155.24.101'--DB地址
exec sp_addlinkedsrvlogin
'SZDB01',--連接服務(wù)器的別名
'false',
NULL,
'szUSER',--登陸用戶(hù)名
'Password@123'--登陸密碼
--執(zhí)行完之后就可以寫(xiě)這樣的查詢(xún)語(yǔ)句了
select * from openquery([SZDB01],'select file_No,file_Name from FileDB01.dbo.getFileList()') as tableA --這里的DZDB01就是上面添加的連接服務(wù)器的別名

有多個(gè)就添加多個(gè)連接服務(wù)器;這是其中的一種;

還有一種就是使用opendatasource,這是SQL的一個(gè)函數(shù),其能夠打開(kāi)指定的DB,而且這個(gè)函數(shù)的執(zhí)行權(quán)限很低,技術(shù)手冊(cè)中說(shuō)任何人都可以執(zhí)行此函數(shù);這個(gè)函數(shù)也是hacker常用的數(shù)據(jù)爆表的一個(gè)手段;目前查看SQL Server 2008的手冊(cè)中,其說(shuō)明還是說(shuō)所有人都有權(quán)限執(zhí)行;

這個(gè)函數(shù)只能是不常用的查詢(xún)中會(huì)用到;

舉一個(gè)簡(jiǎn)單的例子:

select * from opendatasource('SQLOLEDB','Data Source=10.155.24.100;User ID="szUSER";Password="Password@123"') as tableA

這個(gè)也是對(duì)上面的一種實(shí)現(xiàn);

opendatasource還可以直接打開(kāi)mdb這類(lèi)文件。這種我就沒(méi)有去試驗(yàn)了,技術(shù)從書(shū)中有說(shuō)明;

select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="d:/abcd.mdb"') 

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

您可能感興趣的文章:
  • SQL Server游標(biāo)的介紹與使用
  • SQL Server三種鎖定模式的知識(shí)講解
  • SQL Server視圖的講解
  • Sql Server的一些知識(shí)點(diǎn)定義總結(jié)
  • C#連接SQL Server的實(shí)現(xiàn)方法
  • laravel5使用freetds連接sql server的方法
  • 詳解易語(yǔ)言操作sql server實(shí)例
  • SQL Server中的SELECT會(huì)阻塞SELECT嗎
  • sqlserver2008首次登錄失敗問(wèn)題及解決方法
  • SQL Server四個(gè)系統(tǒng)表的知識(shí)講解

標(biāo)簽:湖南 銅川 蘭州 仙桃 崇左 湘潭 黃山 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 2008數(shù)據(jù)庫(kù)分布式查詢(xún)知識(shí)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266