第一步建立乙個遠端連線
使用sql-server進行分布式查詢(鏈結伺服器)
可以使用sql-server企業管理器進行建立,注意其中的rpc及rpc out兩項;也可以使用sql語句來完成定義。
(這裡提醒一下最好使用sql-server企業管理器建立!)
主要涉及到三個儲存過程
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=;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_helpserver /*---檢視遠端伺服器的列表-------*/
exec sp_helplinkedsrvlogin /*------檢視遠端伺服器的登入使用者---------*/
exec sp_droplinkedsrvlogin 'sestlserver',null /*----刪除遠端伺服器的登入使用者-----*/
exec sp_dropserver 'sestlserver','droplogins'/*-----刪除遠端伺服器------*/
exec sp_addlinkedserver 'sestlserver','','sqloledb','sestlserver',null,'driver=;server=192.168.0.2;uid=sa,pwd=;'
exec sp_serveroption n'sestlserver', n'rpc out', n'true'
exec sp_serveroption n'sestlserver', n'rpc', n'true'
exec sp_addlinkedsrvlogin 'sestlserver','false',null,'sa',
也可以這麼定義遠端連線:
exec sp_addlinkedserver 'dbx','','sqloledb','192.168.0.1'
exec sp_addlinkedsrvlogin 'dbx','false',null,'sa',''
執行:select * from dbx.資料庫名.dbo.表名
資料庫 mysql 跨庫訪問 資料庫跨庫訪問問題
sql server中的所有權鏈及其問題 沒有多少朋友對所有權鏈真的理解的。我自己有時候經常回過來看看這些資料,覺得還是很有意思的。下面的內容摘自微軟文件,介紹得比較好 簡而言之 1.如果在同乙個資料庫中,只要兩個物件的所有者是一樣的,那麼他們之間的訪問是不檢查訪問者身份的。例如乙個檢視和乙個表是屬...
SQL Server跨資料庫呼叫儲存過程
a庫儲存過程 create procedure dbo spaaafortest username nvarchar 20 null loginpwd nvarchar 60 null as begin select n a as a n b as b n c as c end同一臺伺服器例項,a,...
MySQL儲存過程跨資料庫操作同步資料
begin declare deliverstatus,smlen,datacoding,total int set total 0 while total 20 do set tsid if tsid then if resulttime and recvtime then elseif resu...