遇到下列問題:

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的朝陽網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
線上服務(wù)器A,中轉(zhuǎn)服務(wù)器B,本地服務(wù)器C
數(shù)據(jù)在A上面,想在B上面操作類似 select * from [A].[database].table這樣的SQL,不用去鏈接服務(wù)器,直接把處理結(jié)果導(dǎo)入B然后生成報表。
結(jié)果報錯如下:
消息 7202,級別 11,狀態(tài) 2,第 1 行
在 sys.servers 中找不到服務(wù)器 'A'。請驗證指定的服務(wù)器名稱是否正確。如果需要,請執(zhí)行存儲過程 sp_addlinkedserver 以將服務(wù)器添加到 sys.servers。
執(zhí)行下面操作在B服務(wù)器上面創(chuàng)建A服務(wù)器連接,
step1:服務(wù)器地址(IP),服務(wù)器類型,訪問借口
step2:用戶設(shè)置、安全設(shè)置。
注意上面的本地登錄用戶和遠(yuǎn)程用戶名,注意最下面的使用此安全上下文建立連接。輸入用戶名密碼。服務(wù)器選項設(shè)為默認(rèn)可以。
OK 再次執(zhí)行select * from [A].[database].table 數(shù)據(jù)展現(xiàn)正常,問題解決。
EXEC sp_addlinkedserver
@server='Province', --被訪問的服務(wù)器別名
@srvproduct='ORACLE', --SqlServer默認(rèn)不需要寫
@provider='MSDAORA', --不同的庫都是不一樣的,OLE DB字符
@datasrc='192.168.88.88/ORCL'--要訪問的服務(wù)器
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname='Province', --被訪問的服務(wù)器別名
@useself='false', --固定這么寫
@locallogin='sa', --本地操作應(yīng)戶名
@rmtuser='kobe', --被訪問的服務(wù)器用戶名
@rmtpassword='kobe123'--被訪問的服務(wù)器用密碼
GO
--參數(shù)解釋:
sp_addlinkedserver:創(chuàng)建一個鏈接的服務(wù)器,使其允許對分布式的、針對 OLE DB 數(shù)據(jù)源的異類查詢進(jìn)行訪問。
sp_addlinkedsrvlogin:創(chuàng)建或更新本地 Microsoft? SQL Server? 實例上的登錄與鏈接服務(wù)器上遠(yuǎn)程登錄之間的映射。
現(xiàn)在測試一下,用帳號sa本地登錄SqlServer,新建一個查詢,輸入
SELECT * FROM OPENQUERY(Province, 'select * from t_base_school')
比如:
SELECT organization_id,organization_name FROM OPENQUERY(Province, 'select * from t_base_organizationtree')
沒問題的話,就能查詢到數(shù)據(jù)了。
一些常用操作:
--查詢操作
SELECT * FROM OPENQUERY(Province, 'select * from t_base_duty')
--刪除操作
DELETE FROM OPENQUERY(Province, 'select * from t_base_duty')
--插入操作
INSERT INTO OPENQUERY (province,'SELECT * FROM t_base_role') (role_id,role_name,bureautype_id,is_system,b_use,field_order,b_del,identity_id) VALUES (10,'科比',7,1,0,1,0,2)
--更新操作
UPDATE OPENQUERY (province,'SELECT * FROM t_base_role') SET role_name='科比' WHERE role_id=10
注:技巧(OPENQUERY(Province, 'select * from t_base_duty') 看做是一張表)
首先你說的外部數(shù)據(jù)庫是指的跨服務(wù)器還是在同一個服務(wù)器上;
如果在同一臺服務(wù)上的兩個庫的話,直接使用庫名.表名直接訪問,如果是在不同服務(wù)器上的話,需要建立服務(wù)器連接:
exec
sp_addlinkedserver
--鏈接服務(wù)名稱
@server
=
'UPDateLink',
--產(chǎn)品名稱
@srvproduct
=
'',
--訪問接口
@provider
=
'SQLOLEDB',
--數(shù)據(jù)源
@datasrc
=
'200.200.200.251'
declare
@LocalUser
varchar(20),@ServerUser
varchar(20),@SeverPSW
varchar(20)
Set
@LocalUser
=
'sa'
Set
@ServerUser
=
'root'
Set
@SeverPSW
=
'617114'
exec
sp_addlinkedsrvlogin
UPDateLink,False,@LocalUser,@ServerUser,@SeverPSW
無論使用那種數(shù)據(jù)庫,都有和其他數(shù)據(jù)庫進(jìn)行通訊或者數(shù)據(jù)文件進(jìn)行數(shù)據(jù)交換的需求。
在應(yīng)用程序中進(jìn)行信息交換和信息共享的時候,可以通過數(shù)據(jù)文件交換或者數(shù)據(jù)庫間的數(shù)據(jù)互訪。今天為大家分享如何使用SQLSERVER鏈接服務(wù)器訪問數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)共享。
鏈接服務(wù)器是SQLServer數(shù)據(jù)庫自定義的虛擬服務(wù)器,它定義了訪問OLEDB數(shù)據(jù)所需要的全部信息。
方法/步驟
步驟1:打開企業(yè)管理器,如下。
步驟2:選擇數(shù)據(jù)庫,安全性,點擊新建鏈接服務(wù)器。
步驟3:選擇鏈接服務(wù)器屬性,常規(guī),輸入名稱:TEST,選擇ORACLE數(shù)據(jù)庫提供程序,輸入名稱、數(shù)據(jù)源。
步驟4:進(jìn)行安全性設(shè)置。本地登錄,選擇SQLServer數(shù)據(jù)庫登錄用戶,遠(yuǎn)程登錄用戶和密碼,輸入遠(yuǎn)程連接數(shù)據(jù)庫的用戶和密碼,選擇用此安全上下文進(jìn)行,輸入遠(yuǎn)程登錄用戶和密碼。
步驟5:點擊TEST鏈接服務(wù)器下的表,我們可以訪問ORACLE數(shù)據(jù)庫的表了。
注意:產(chǎn)品名稱要和所鏈接的服務(wù)器相對應(yīng),使用ORACLE數(shù)據(jù)庫就要輸入ORACLE,使用SQLServer就輸入SQLServer。
END
注意事項
本地登錄需要輸入本地SQLServer的用戶和密碼。
SQLServer鏈接服務(wù)器可以通過配置讀取到ORACLE數(shù)據(jù)庫數(shù)據(jù)。
1、打開sql
server
management
studio;
2、連接到sql
server
2008;
3、打開“服務(wù)器對象”-“鏈接服務(wù)器”;
4、右鍵“新建鏈接服務(wù)器”彈出對話框;
5、常規(guī)里在“鏈接服務(wù)器”輸入2000所在的實例名。一般是機器名;
6、安全性里添加一個登錄,用于登錄到2000。是不是沒設(shè)置這里?
本文題目:sqlserver建鏈接,鏈接sqlserver數(shù)據(jù)庫
網(wǎng)頁地址:http://chinadenli.net/article48/dsgojhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站制作、云服務(wù)器、定制開發(fā)、面包屑導(dǎo)航、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)