导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

跨服务器数据库之间的操作怎么进行啊???

put2001_ruan 2003-12-26 01:50:01
目的:我想在一台服务器上把一个表格中的数据导到另外一个服务器中的一个表中
我是在VB程序中来操作的
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=284中有类似的文章,但是他没有说出结果来
...全文
10 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaozhuang 2003-12-26
路过,帮你顶
回复
xzx760815 2003-12-26
EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO

delete from openquery(mailser,'select * from yulin')

select * from openquery(mailser,'select * from yulin')

update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888

insert into openquery(mailser,'select disorder,catago from yulin')values(333,777)
回复
txlicenhe 2003-12-26


/************* Oracle **************/
EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO

delete from openquery(mailser,'select * from yulin')

select * from openquery(mailser,'select * from yulin')

update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888

insert into openquery(mailser,'select disorder,catago from yulin')values(333,777)
回复
put2001_ruan 2003-12-26
关键是两个服务器一个是:MS SQL,Oracle.
我的目的是想把Oracle中的一个表格放到MS SQL中.
VB代码:
cnSpeedTest.Open "Provider=SQLOLEDB;User ID=sa;PassWord=put_ruan;Initial Catalog=Northwind;Data Source=RDSVR;Persist Security Info=False;"

rsSpeedTest.Open "select * into TestTable from OPENDATASOURCE('OraOLEDB.Oracle','Data Source=mydb;User ID=system;Password=put_ruan').my_first_table", cnSpeedTest

运行出错!!!
回复
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','密码'
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
回复
insert into openrowset('sqloledb','另一个服务器名';'sa';'',数据库名..表名)
select * from 表名
回复
txlicenhe 2003-12-26


/********************链接数据库 *******************************/

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.表名
go
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告