数据库如何跨服务器连接
跨数据库使用比较简单,如ceshi数据库想使用Finance2014的A表,则使用SELECT FROM Finance2014dboA
跨服务器的使用,相对复杂一些 需要先连接服务器
EXEC sp_addlinkedserver 'srv_lnk','','SQLOLEDB','1921682249'EXEC sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','12345'
再设置保证存储过程能够使用
EXEC sp_serveroption @server='srv_lnk',@optname='rpc',@optvalue='TRUE'EXEC sp_serveroption @server='srv_lnk',@optname='rpc out',@optvalue='TRUE'
4再跨服务器调用数据库表和存储过程如:
SELECT FROM srv_lnkAdboB 其中A为数据库B为表
EXEC srv_lnkAdboB 其中A为数据库B为存储过程
请问垮服务器没?如果没在一个服务器上,就使用链接服务器,实现跨库查询比较容易,如果在同一个服务器上,实现跨库查询,就使用select from dbnamedbotable1
opendatasource('sqloledb,'Data Source=服务器地址;UserID=sa;Password=pass@word1 ')数据库名字dbo[表名] 这是跨服务器的调用,如不是不是跨服务器,直接数据库名dbo表名
1建立两个数据库连接,查询的时候分别调用。
2使用dbnametablename的方式来写from,或者join(前提是你用于连接MYSQL的帐号必须同时可以访问这两个库)
例如:dba,dbb
select from dbatable1 as t1
join dbbtable1 as t2 on t1id = t2id
方法一:
select from servernamedbotablename
方法二:
select from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
)库名dbo表名
where 条件
select top 100 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=1921686100;User ID=sa;Password=1234'
)[zhaolx-test]dboTGongwen
where gid <5
insert into OPENDATASOURCE(
'SQLOLEDB',
'Data Source=1921686100;User ID=sa;Password=1234'
)[zhaolx-test]dbot_aaa (id ,name )values('001','Tom')
select top 100 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=1921686100;User ID=sa;Password=1234'
)[zhaolx-test]dbot_aaa
楼主好,想实现这个的话,可以使用SQL自带的VS开发工具,做一个ETL包,然后部署发布到服务器数据库上,添加作业,设定同步时间即可。跨局域网和跨服务器基本上在SQL连接中,本身就不太好解决,需要有服务器之间的链接访问权才可以建立连接。但是ETL不受这一点限制。唯一不足的地方在于,如果你有100张表数据需要同步,做ETL包是个麻烦事,同一个模式,你要做非常多的ETL流程,不管是做在一个包中也好,多个包中也好,都会显得比较繁琐。但是好处是不受服务器限制,另外要注意,如果同步的表有外键,那么需要在做ETL的时候添加执行顺序,才能确保表数据同步成功的。如果想了解更多可加我,646443736
0条评论