SQL Server教程之讀取第三方數(shù)據(jù)庫中的數(shù)據(jù)
此文主要向大家講述的是SQL Server教程之讀取第三方數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)的實(shí)際操作步驟。以及對其實(shí)際操作中值得我們大家注意的相關(guān)事項(xiàng)的具體描述,以下就是文章的主要內(nèi)容的描述。
現(xiàn)在需要在一臺服務(wù)器(A)上的數(shù)據(jù)庫(Master)里訪問另外一臺服務(wù)器(B)的另外兩個(gè)數(shù)據(jù)庫(NZ 和 AU)。AU 和 NZ 是網(wǎng)站的部分實(shí)時(shí)數(shù)據(jù),目前某一步操作的REPLICATION方案是從服務(wù)器B到A,AU / NZ 的表結(jié)構(gòu)同Master 數(shù)據(jù)結(jié)構(gòu)基本一致。
這樣一來,當(dāng)把AU Replication 到 Master 后,在把 NZ Replication 到 Master , Master 里的就只剩 NZ 的數(shù)據(jù)了。反過來就只有AU的了,具體的Replication 是怎么一回事,我也不懂,也沒有細(xì)看。
如果能在Master 里直接操作 AU 和 NZ 就好了。
SQLServer 有函數(shù):
OPENROWSET 和 OPENDATASOURCE
這兩個(gè)函數(shù)不但能實(shí)現(xiàn)從另外的數(shù)據(jù)庫讀數(shù)據(jù),而且還能從EXCEL、TXT, ORACLE, ODBC 等讀數(shù)據(jù)。
啟用Ad Hoc Distributed Queries:
- exec sp_configure ’show advanced options’,1
- reconfigure
- exec sp_configure ’Ad Hoc Distributed Queries’,1
- reconfigure
- SELECT *
- FROM OPENDATASOURCE(
- ’SQLOLEDB’,
- ’Data Source=SQLServerName;User ID=sa;Password=xxx’
- ).Help.dbo.Help_Category
或
- select * from openrowset( ’SQLOLEDB ’, ’SQLServerName’; ’sa’; ’xxx’, Help.dbo.Help_Category )
- 關(guān)閉Ad Hoc Distributed Queries:
- exec sp_configure ’Ad Hoc Distributed Queries’,0
- reconfigure
- exec sp_configure ’show advanced options’,0
- reconfigure
但是,這樣寫著有點(diǎn)復(fù)雜,而且不便于維護(hù),假如數(shù)據(jù)庫密碼改變了,就需要把一個(gè)一個(gè)把密碼改正。
Oracle 里有 DB Link, 而且語法非常簡潔。
查了一下幫助,SQLServer教程 里有 “鏈接服務(wù)器” 這個(gè)東東。要創(chuàng)建 鏈接服務(wù)器需要用到SQLServer 的一個(gè)系統(tǒng)存儲過程:
- sp_addlinkedserver [ @server= ] ’server’ [ , [ @srvproduct= ] ’product_name’ ]
- [ , [ @provider= ] ’provider_name’ ]
- [ , [ @datasrc= ] ’data_source’ ]
- [ , [ @location= ] ’location’ ]
- [ , [ @provstr= ] ’provider_string’ ]
- [ , [ @catalog= ] ’catalog’ ]
- exec sp_addlinkedserver @server= ’XLING’ , @srvproduct = ”, @provider = ’SQLNCLI’ , @datasrc = ’SQLServerName2′
執(zhí)行后,可以在 Sqlserver Management Studio 的對象資源管理器里的 服務(wù)器對象 -》 鏈接服務(wù)器 里看到看這個(gè) XLING
然后就可以用:
- SELECT * FROM XLING.PricemeHelp.dbo.Help_Category
這里的XLING就是指向數(shù)據(jù)庫SQLServerName2的鏈接服務(wù)器,從上面的SELECT可以看出,寫的依然復(fù)雜。
SQLServer 也有,而且語法差不多:
- CREATE SYNONYM dbo.Help_Category_NZ FOR XLING.PricemeHelp.dbo.Help_Category
執(zhí)行后,就可以用:
- SELECT * FROM Help_Category_NZ
了!
上述的相關(guān)內(nèi)容就是對SQL Server教程之讀取第三方數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)的描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】
- MySQL數(shù)據(jù)庫與MS SQL Server不同之處的表現(xiàn)
- MySQL數(shù)據(jù)庫與MSSQL Server有什么不同?
- SQL Server設(shè)定過濾條件提高索引效率
- 安裝MySQL Server 5.0在Linux上
- 詳解SQL Server 2008復(fù)制分區(qū)清理數(shù)據(jù)