SqlServer创建远程链接服务器(SqlServer/MySql/Oracle)

一、SqlServer

--创建远程链接服务器
EXEC master.dbo.sp_addlinkedserver 
@server = N'EPMS_Haha'        --链接服务器的名称
,@srvproduct=N'h3cepms02-db'  --SqlServer默认不需要写
,@provider=N'SQLNCLI'         --不同的库都是不一样的(SQLNCLI或SQLOLEDB都行)
,@datasrc=N'h3cepms02-db,1523'--目标数据库所在的服务器

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'EPMS_Haha'   --链接服务器的名称
,@useself=N'False'         --固定这么写
,@locallogin=NULL          --本地操作用户名(sa或null都行)
,@rmtuser=N'user99999'     --目标数据库所在的服务器的用户名
,@rmtpassword='user99999'  --目标数据库所在的服务器的密码

--删除远程链接服务器
EXEC sp_dropserver EPMS_Haha
EXEC sp_dropserver 'EPMS_Haha'

--用远程链接服务器进行查询方法1:简洁但性能弱
select *, GETDATE() as SyncTime from EPMS_Haha.Epms.dbo.UserInfo
--用远程链接服务器进行查询方法1:稍复杂但性能强
select *, GETDATE() as SyncTime from openquery(EPMS_Haha,'select * from Epms.dbo.UserInfo')

二、MySql

要想创建SqlServer访问MySql的链接服务器,首先要在MySqlConnector中添加数据源,然后在SqlServer中执行脚本创建链接服务器。

注意:
SqlServer连接MySql需要先安装mysql-connector-odbc,下载地址:https://dev.mysql.com/downloads/connector/odbc/
连接方与被连接方的MySQL ODBC驱动版本不一致时,用户名和密码正确也有可能连接失败!

--创建远程链接服务器
EXEC master.dbo.sp_addlinkedserver 
@server = N'CMDB_Haha'  --链接服务器的名称
,@srvproduct=N'MySql'   --产品名称
,@provider=N'MSDASQL'   --OLEDB驱动名称(固定)
,@datasrc=N'cmdb'       --MySql数据源名称

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'CMDB_Haha' --链接服务器的名称
,@useself=N'False'       --固定这么写
,@locallogin=null        --本地操作用户名(sa或null都行)
,@rmtuser=N'user99999'   --MySql数据源的账号
,@rmtpassword='user99999'--MySql数据源的密码

--删除远程连接服务器
EXEC sp_dropserver CMDB_Haha
EXEC sp_dropserver 'CMDB_Haha'

--用远程链接服务器进行查询方法1:简洁但性能弱
select *, GETDATE() as SyncTime from CMDB_Haha.Epms.dbo.UserInfo
--用远程链接服务器进行查询方法1:稍复杂但性能强
select *, GETDATE() as SyncTime from openquery(CMDB_Haha,'select * from Epms.dbo.UserInfo')

三、Oracle

注意:
SqlServer连接Oracle需要先安装Oracle客户端,下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

--创建远程连接服务器(全路径DataSource)
EXEC master.dbo.sp_addlinkedserver 
@server = N'DMS_Haha'          --链接服务器的名称
, @srvproduct=N'oracle'        --产品名称
, @provider=N'OraOLEDB.Oracle' --OLEDB驱动名称(固定)
, @datasrc=N'hengha.google.com:1521/barp' --格式(ip:端口/SERVICE_NAME)

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'DMS_Haha' --链接服务器的名称
,@useself=N'False'      --固定这么写
,@locallogin=NULL       --本地操作用户名(sa或null都行)
,@rmtuser=N'user99999'  --Oracle数据源的账号
,@rmtpassword='user99999'--Oracle数据源的密码

--删除远程连接服务器
EXEC sp_dropserver DMS_Haha
EXEC sp_dropserver 'DMS_Haha'

--用远程链接服务器进行查询方法1:简洁但性能弱
select *, GETDATE() as SyncTime from DMS_Haha.Epms.dbo.UserInfo
--用远程链接服务器进行查询方法1:稍复杂但性能强
select *, GETDATE() as SyncTime from openquery(DMS_Haha,'select * from Epms.dbo.UserInfo')

除了利用DataSource全路径创建远程连接服务器外,用DataSource简称也可以创建远程链接服务器,不过需要先添加配置。

--创建远程连接服务器(DataSource简称)
EXEC master.dbo.sp_addlinkedserver 
@server = N'DMS_Haha'          --链接服务器的名称
, @srvproduct=N'oracle'        --产品名称
, @provider=N'OraOLEDB.Oracle' --OLEDB驱动名称(固定)
, @datasrc=N'barp' --格式(ip:端口/SERVICE_NAME)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值