通过sql server 连接mysql
安装MYSQL ODBC驱动
驱动下载地址:
https://dev.mysql.com/downloads/connector/odbc/
配置ODBC数据源
- 管理工具»ODBC数据源»系统DSN»添加»选择 MYSQL ODBC 5.3 Unicode DRIVER»完成
- 根据提示填写MYSQL连接参数
- 点下test.成功了则会如图跳出提示框.
创建链接服务器
打开SQL数据库,找到链接服务器.创建链接服务器,大家都会的,所以我就把参数发一下.如图,常规选项的其他的就不用填了.确定就行了.
这里,需要注意:访问接口要选择“Microsoft OLE DB Provider for ODBC Drivers”。
数据源:选择之前已创建好的ODBC接口。
sql 语句使用
--查询
SELECT * FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')
--修改
UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''') set cname='测试'
--or
UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName ') set cname='测试' where id=1
--添加
INSERT INTO OPENQUERY(MYSQL_DBLINK, 'select * from tableName where 1=0')values ('xx','xx','xx');
--删除
DELETE FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')
【注意】在查询的时候如果出现: 链接服务器 ‘MYSQL_DBLINK’ 的 OLE DB 访问接口 ‘MSDASQL’ 返回了对列 ‘[MSDASQL].cname’ 无效的数据。
需要在MYSQL ODBC数据源上设置符合你的编码格式,如图:
OPENQUERY用法
对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。
Transact-SQL 语法约定
语法
OPENQUERY ( linked_server ,’query’ )
参数
linked_server 表示链接服务器名称的标识符。
’ query ‘ 在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。
备注
OPENQUERY 不接受其参数的变量。
在 SQL Server 2000 和更高版本中,OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如:
EXEC SeattleSales.master.dbo.xp_msver
权限
任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。
文章抄自:https://cnhv.co/ov9o
(完)