加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MSSQLServer 使用linkserver 操作mysql

发布时间:2020-12-12 13:29:56 所属栏目:MsSql教程 来源:网络整理
导读:通过使用SQLServer的链接服务器 linkserver,可以在SQLServer直接操作mysql数据库。 先看最终效果, mysql数据库中有表t1,如果建立了一个链接服务器:mysql1,指向这个数据库 SQLServer数据库中有t2表,那么可以直接在SQLServer中执行下面SQL 读本地表 sele

通过使用SQLServer的链接服务器 linkserver,可以在SQLServer直接操作mysql数据库。


先看最终效果,

mysql数据库中有表t1,如果建立了一个链接服务器:mysql1,指向这个数据库

SQLServer数据库中有t2表,那么可以直接在SQLServer中执行下面SQL


读本地表

select * from t2


读mysql表,远程过滤

SELECT * ?FROM ?OPENQUERY([mysql1],'select * from t1 where id=1')




读mysql表,本地过滤

SELECT * ?FROM ?OPENQUERY([mysql1],'select * from t1')

where id=1


本地与远程表关联

SELECT * ?FROM ?OPENQUERY([mysql1],'select * from t1 ') t1,t2 where t1.id=t2.id


简单说,可以将OPENQUERY看作一个表


更新表
UPDATE OPENQUERY ([mysql1],'SELECT * FROM t1') ?set?i0=888 where id=1

更佳写法,尽量使用远程过滤

UPDATE OPENQUERY ([mysql1],'SELECT * FROM t1 where id=1') ?set?i0=888


插入表,注意:使用where 0=1,不返回记录,只获取表结构

insert OPENQUERY ([mysql1],'SELECT id,s FROM t1 where 0=1')?values(2,'444')


删除

delete OPENQUERY ([mysql1],'SELECT * FROM t1 where id=5')?


复杂一些

update t2 set i0=t1.i0 from OPENQUERY ([mysql1],'SELECT * FROM t1')t1 WHERE t1.id=t2.id


总之,没什么不可能的了。

_________________________________________________________________________________________________

建立链接服务器步骤:

1.在windows上安装 mysql 的 ODBC驱动程序,64位windows就安装64位的

官网下载地址:http://dev.mysql.com/downloads/connector/odbc/


2.然后windows菜单中找到 ODBC数据源(64位)

在系统DSN中配置一个,选择刚安装的Mysql ODBC 5.x union code Driver

datasource name输入 mysqlDSN

其他地址端口用户口令数据库都填写上,测试一下


3.增加链接服务器

在SQLServer管理中,服务器对象/链接服务器,新增一个,名字取 mysql1

其他数据源,选提供程序:Microsoft OLE DB Provider For ODBC Drivers

数据源输入刚才建立的,mysqlDSN,然后在 安全性 中输入mysql的用户密码

增加成功,即可使用mysql1了



读mysql表

SELECT * ?FROM ?OPENQUERY([mysql1],'select * from t1 where id=1')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读