sql server 2005 建立链接服务器
--使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE
1、建立链接数据库
sp_addlinkedserver '别名', 'Oracle', 'MSDAORA', '服务名'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='别名
',@useself='false',@locallogin='sa',@rmtuser='oracle用户名
',@rmtpassword='密码'
2、查询数据
SELECT * FROM 别名..用户名.表(视图)
注意:四部分名称全部用大写
3、执行存储过程
使用OPENQUERY:
SELECT *
FROM OPENQUERY(别名, 'exec 用户名.存储过程名')
例如:
/****** 对象: LinkedServer [TEST_ORACLE] 脚本日期: 03/03/2008 10:52:01 ******/
EXEC master.dbo.sp_addlinkedserver
@server = N'TEST_ORACLE',
@srvproduct=N'Oracle',
@provider=N'MSDAORA',
@datasrc=N'orcl'
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname='TEST_ORACLE',
@useself='false',
@locallogin='sa',
@rmtuser='guoqiang',
@rmtpassword='guoqiang'
GO
SELECT * FROM TEST_ORACLE..GUOQIANG.PERSON;
GO
CREATE SYNONYM PERSON FOR TEST_ORACLE..GUOQIANG.PERSON;
--使用SQL Server 的 Microsoft OLE DB 提供程序
exec sp_addlinkedserver @server='别名
',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
exec sp_addlinkedsrvlogin
@rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtp
assword='密码'
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
例如:
exec sp_addlinkedserver
@server='TEST_SQLSERVER',
@provider='sqloledb',
@srvproduct='',
@datasrc='138.64.102.6'
go
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin
@rmtsrvname='TEST_SQLSERVER',
@useself='false',
@locallogin='sa',
@rmtuser='guoqiang',
@rmtpassword='guoqiang'
go
select * from TEST_SQLSERVER.GUOQIANG.dbo.PERSON;