第一种:界面操作
(1)展开服务器对象-->链接服务器-->右击“新建链接服务器”
(2)输入链接服务器的IP
(3)链接成功后
第二种:语句操作
注:需要提前安装Oracle客户端程序,重启机器。(如果没有Oracle客户端程序,提示“未找到Oracle客户端和网络组件”)
EXEC sp_addlinkedserver
@server=\'Province\', --被访问的服务器别名
@srvproduct=\'ORACLE\', --SqlServer默认不需要写
@provider=\'MSDAORA\', --不同的库都是不一样的,OLE DB字符
@datasrc=\'192.168.88.88/ORCL\'--要访问的服务器
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname=\'Province\', --被访问的服务器别名
@useself=\'false\', --固定这么写
@locallogin=\'sa\', --本地操作应户名
@rmtuser=\'kobe\', --被访问的服务器用户名
@rmtpassword=\'kobe123\'--被访问的服务器用密码
GO
--参数解释:
sp_addlinkedserver:创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。
sp_addlinkedsrvlogin:创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射。
现在测试一下,用帐号sa本地登录SqlServer,新建一个查询,输入
SELECT * FROM OPENQUERY(Province, \'select * from t_base_school\')
比如:
SELECT organization_id,organization_name FROM OPENQUERY(Province, \'select * from t_base_organizationtree\')
没问题的话,就能查询到数据了。
一些常用操作:
--查询操作
SELECT * FROM OPENQUERY(Province, \'select * from t_base_duty\')
--删除操作
DELETE FROM OPENQUERY(Province, \'select * from t_base_duty\')
--插入操作
INSERT INTO OPENQUERY (province,\'SELECT * FROM t_base_role\') (role_id,role_name,bureautype_id,is_system,b_use,field_order,b_del,identity_id) VALUES (10,\'科比\',7,1,0,1,0,2)
--更新操作
UPDATE OPENQUERY (province,\'SELECT * FROM t_base_role\') SET role_name=\'科比\' WHERE role_id=10
注:技巧(OPENQUERY(Province, \'select * from t_base_duty\') 看做是一张表)