saimisei

sql中连接两个不同的数据库(A在同一个服务器,B不在一个服务器)

(A)同一服务器上连接不同的数据库
DBF.dbo.Table_NAME 
DBF                   数据库名
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)不同服务器连接
lssjx  当前服务器上表
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
)
//////////////////////////服务器上ip---server=192.168.0.2
///////所要连接的数据库-------database=zxx
,(zxx.dbo.teach  数据库中的teach表)

例3

exec sp_addlinkedserver
    @server ='Server',--链接服务器名,这个可以改简单点,比如Server,引用也方便,这个名字可以随便取
    @srvproduct = '',
    @provider = N'SQLOLEDB',
    @datasrc = N'192.168.0.111',--远程服务器名称
    @catalog = N'DataBase'--远程数据库的名称
go

--创建远程登录
exec sp_addlinkedsrvlogin
    @rmtsrvname = 'Server',
    @useself='False',
    @rmtuser ='sa', --远程服务器登录名称
    @rmtpassword ='密码'
go
--试一下

select * from [Server].数据库.dbo.表

exec   sp_dropserver   'Server','droplogins'

 

posted on 2010-11-04 08:44  閑雲野鶴  阅读(490)  评论(0编辑  收藏  举报

导航