sql server 跨库查询

2025-02-23 15:56:11
推荐回答(3个)
回答1:

  方法一:
  select * from servername.dbo.tablename
  方法二:
  select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
where 条件
  select top 100 * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.6.100;User ID=sa;Password=1234'
).[zhaolx-test].dbo.TGongwen
  where gid <5
  insert into OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.6.100;User ID=sa;Password=1234'
).[zhaolx-test].dbo.t_aaa (id ,name )values('001','Tom')
  select top 100 * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.6.100;User ID=sa;Password=1234'
).[zhaolx-test].dbo.t_aaa

回答2:

首先确定建立了链接服务器
(具体创建方式:http://www.jb51.net/article/24810.htm)

然后
select * from [192.1xxxxx(地址名)].库名.dbo.表名

回答3:

EXEC sp_addlinkedserver
@server='192.168.1.118',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.1.118' --要访问的服务器
--使用sp_addlinkedsrvlogin 来增加用户登录链接

EXEC sp_addlinkedsrvlogin
'192.168.1.118', --被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)
'false',
NULL,
'sa', --帐号
'123456' --密码
go

select *from [192.168.1.118].[数据库名].[dbo].[表名]