MSSQLServer 使用linkserver 操作mysql

通过使用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')

你可能感兴趣的:(MSSQLServer 使用linkserver 操作mysql)