以下是代碼片段:
-- 如果想使用分布式查詢,必須先開通分布式查詢 [外圍配置 這點(diǎn)是所有查詢操作前提] -- sp_configure--顯示或更改當(dāng)前服務(wù)器的全局配置設(shè)置 -- reconfigure 指定如果配置設(shè)置不需要服務(wù)器停止并重新啟動(dòng),則更新當(dāng)前運(yùn)行的值 -- SQL2005默認(rèn)是沒(méi)有開啟’Ad Hoc Distributed Queries’ 組件 -- 啟用權(quán)限 exec sp_configure 'show advanced options',1 -- 顯示高級(jí)配置 reconfigure -- 更新值 exec sp_configure 'Ad Hoc Distributed Queries',1 -- 啟用分布式查詢 reconfigure go -- 關(guān)閉分布式查詢 exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure go -- 開啟權(quán)限后 另外一種查詢方式 -- 查詢格式 SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=遠(yuǎn)程ip;User ID=sa;Password=密碼' ).庫(kù)名.dbo.表名 WHERE 條件 -- 需要開啟權(quán)限 -- 開啟權(quán)限 提示[遠(yuǎn)程的SqlServer不允許遠(yuǎn)程連接] select * from OPENDATASOURCE('SQLOLEDB','Data Source=192.168.10.67; User
如上我們首先清除已經(jīng)可能創(chuàng)建服務(wù)器數(shù)據(jù)記錄. 然后創(chuàng)建服務(wù)器連接.sp_addlinkedSrvlogin系統(tǒng)存儲(chǔ)過(guò)程用來(lái)創(chuàng)建鏈接服務(wù)器上遠(yuǎn)程登錄之間的映射 . 即我們可以詳細(xì)設(shè)置本地與遠(yuǎn)程服務(wù)器詳細(xì)的映射信息. 例如設(shè)置我們特定用戶訪問(wèn)的用戶名和密碼.
查詢數(shù)據(jù)
-- 查詢指定用戶Test數(shù)據(jù) select * from [demodb].CustomerDB.dbo.Users -- [如上測(cè)試成功]
查詢結(jié)果
指定用戶Test對(duì)CustomerDB訪問(wèn)數(shù)據(jù)方式測(cè)試成功.
<3>問(wèn)題排查與更多查詢方式
當(dāng)我們?cè)趯?shí)際編程中進(jìn)行訪問(wèn)遠(yuǎn)程數(shù)據(jù)時(shí) 因?yàn)椴煌僮鳝h(huán)境會(huì)引發(fā)各種各樣的異常,如下我會(huì)提出一種常見的異常方式解決辦法和關(guān)于遠(yuǎn)程數(shù)據(jù)操作更多查詢方式.
<3.1>無(wú)法建立遠(yuǎn)程連接
其實(shí)這個(gè)問(wèn)題在做分布式查詢時(shí)極其常見. 而引起這個(gè)問(wèn)題的因素過(guò)多. 我們一時(shí)無(wú)法判斷真正引發(fā)這個(gè)異常地方. 只能通過(guò)逐個(gè)排查方式來(lái)進(jìn)行設(shè)置:
出處:IT專家網(wǎng)
責(zé)任編輯:bluehearts
上一頁(yè) 詳解SQL Server分布式查詢 [4] 下一頁(yè) 詳解SQL Server分布式查詢 [6]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|