sql中連接兩個(gè)不同的數(shù)據(jù)庫(kù)(A在同一個(gè)服務(wù)器,B不在一個(gè)服務(wù)器)
(A)同一服務(wù)器上連接不同的數(shù)據(jù)庫(kù)
DBF.dbo.Table_NAME
DBF 數(shù)據(jù)庫(kù)名
dbo 是必須寫的
Table_NAME 連接的表名
例 1:
select a.k_teacherid ,a.b_cystatus,b.k_name,c.school_name
from b_shouinform a,k_teacher b,charge_kindergarten.dbo.DIC_SCHOOL_NAME c
where c.school_code=b.k_schoolid and a.k_teacherid=b.k_teacherid and b_iid='62'
例 2:
select * from charge_kindergarten.dbo.DIC_SCHOOL_NAME a,kinder.dbo.k_teacher b
where a.school_code=b.k_schoolid
(B)不同服務(wù)器連接
lssjx 當(dāng)前服務(wù)器上表
select * from lssjx where saveid in
(
select user_id from opendatasource
('SQLOLEDB',
'server=192.168.0.2;uid=sa;pwd=;database=zxx').zxx.dbo.teach
)
//////////////////////////服務(wù)器上ip---server=192.168.0.2
///////所要連接的數(shù)據(jù)庫(kù)-------database=zxx
,(zxx.dbo.teach 數(shù)據(jù)庫(kù)中的teach表)
例3
exec sp_addlinkedserver
@server ='Server',--鏈接服務(wù)器名,這個(gè)可以改簡(jiǎn)單點(diǎn),比如Server,引用也方便,這個(gè)名字可以隨便取
@srvproduct = '',
@provider = N'SQLOLEDB',
@datasrc = N'192.168.0.111',--遠(yuǎn)程服務(wù)器名稱
@catalog = N'DataBase'--遠(yuǎn)程數(shù)據(jù)庫(kù)的名稱
go
--創(chuàng)建遠(yuǎn)程登錄
exec sp_addlinkedsrvlogin
@rmtsrvname = 'Server',
@useself='False',
@rmtuser ='sa', --遠(yuǎn)程服務(wù)器登錄名稱
@rmtpassword ='密碼'
go
--試一下
select * from [Server].數(shù)據(jù)庫(kù).dbo.表
exec sp_dropserver 'Server','droplogins'
posted on 2010-11-04 08:44 閑雲(yún)野鶴 閱讀(558) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)