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