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