如何实现两个异地数据库中表的联合查询?
比如一个为218.112.201.38 一个为211.114.135.79
上分别有pubs和pub_sub两个数据库
要对pubs中的user表和pub_sub中的user进行比较.
请问各位GGJJ改怎么办?
问题点数:100、回复次数:5Top
1 楼txlicenhe(马可)回复于 2003-12-02 17:40:25 得分 25
/********************链接数据库 *******************************/
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
goTop
2 楼shuiniu(飞扬的梦)(我是一头只吃西红柿的水牛)回复于 2003-12-02 17:44:02 得分 25
使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
select * from 别名.pubs.dbo.[user] a full join
pub_sub.dbo.[users] b on a.user = b.user
goTop
3 楼LoveSQL(努力奋斗ing)回复于 2003-12-02 17:44:13 得分 25
建立连接服务器
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后使用
select a.* from 别名.库名.dbo.表名 a,tbl b where a.field=b.field
Top
4 楼lvltt(未完成)回复于 2003-12-02 17:44:50 得分 25
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=服务名;User ID=用户;Password=密码'
).库名.dbo.表名
---------------------------------------------------------------
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
insert 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
或使用联结服务器:
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名..库名.dbo.表名
select * into 库名.dbo.新表名 from 别名..库名.dbo.表名
go
Top
5 楼Carlroy(雨晗)回复于 2003-12-03 16:36:10 得分 0
写错了怎么杀掉它?
能给出参数的说明么?
感谢感谢!!Top




