使用Sql server進行分散式查詢
來源:互聯網
上載者:User
可以使用sql-server企業管理器進行建立,注意其中的rpc及rpc out兩項,也可以使用sql語句來完成定義,主要涉及到三個預存程序
sp_addlinkedserver,sp_serveroption和sp_addlinkedsrvlogin,以下是三個預存程序的文法:
sp_addlinkedserver
建立一個連結的伺服器,使其允許對分布式的、針對 OLE DB 資料來源的異類查詢進行訪問。在使用 sp_addlinkedserver 建立連結的伺服器之後,此伺服器就可以執行分散式查詢。如果連結的伺服器定義為 Microsoft SQL Server,則可執行遠端預存程序。
文法
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproduct = ] 'product_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
例如:
sp_addlinkedserver 'ServerName','','SQLOLEDB','dbconn',null,'driver={sql server};server=192.168.1.181;uid=sa,pwd=;'
此處ServerName為自訂名稱,dbconn為定義的odbc資料來源
一般使用的參數如下:
@server “LINKED SERVER”
@srvproduct “Product name”
@provider “Provider”
@datasrc “Data source”
二、設定伺服器選項
使用 sp_serveroption 過程,所要使用的參數如下:
@server “Linked server”
@optname “RPC”或“RPC OUT”
@optvalue True 或 False
三、添加Login
使用 sp_addlinkedsrvlogin 過程,所要使用的參數如下:
@rmtsrvname “Linked server”
@useself True 或 False
@locallogin 本地LOGIN
@rmtuser 遠端使用者
@rmtpassword 遠端使用者口令
全部完整的樣本如下:
EXEC sp_addlinkedserver 'test','','SQLOLEDB','test',null,'driver={sql server};server=ipaddress;uid=sa,pwd=;'
exec sp_serveroption N'test', N'rpc out', N'true'
exec sp_serveroption N'test', N'rpc', N'true'
exec sp_addlinkedsrvlogin 'test','False',null,'sa',''
訪問可以使用如下語句:select * from test.pubs.dbo.tb_maintab
以上在windows2000,sql-server2000測試通過