You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MySQL Connector/ODBC 8.0时无法从SQL Server更新链接的MySQL表

解决方案

该问题是MySQL Connector/ODBC 8.0版本默认配置变更导致的,可按以下步骤修复:

  • 调整ODBC数据源配置
    打开ODBC数据源管理器(SQL Server为64位版本时需打开64位ODBC管理器),找到对应MySQL DSN进入编辑页,在详细设置-游标/结果分类下,勾选返回匹配行而非受影响行选项,保存后重启SQL Server实例生效。如果是无DSN的链接服务器配置,可直接在提供程序字符串中添加参数 OPTION=2 开启该特性。
  • 优先使用EXEC AT语法执行更新/删除操作
    绕开OPENQUERY的游标更新限制,直接将SQL语句下发到MySQL端执行,兼容性和性能都更好,示例语法如下:
-- 更新操作示例
EXEC ('UPDATE admin_db.test_odbc_3 SET TDBC_DESC = ''mydesc'' WHERE TDBC_ID = 23') AT TDBAMYSQLTEST

-- 删除操作示例
EXEC ('DELETE FROM admin_db.test_odbc_3 WHERE TDBC_ID = 23') AT TDBAMYSQLTEST

你已经开启了链接服务器的RPC Out参数,可直接使用该语法。

  • 可选精度适配
    如果修改上述配置后仍报错,可在OPENQUERY的查询语句中对timestamp列做格式化,统一精度避免SQL Server端值匹配失败:
UPDATE OPENQUERY( TDBAMYSQLTEST, 'SELECT TDBC_ID, TDBC_DESC, DATE_FORMAT(TDBC_TSU, ''%Y-%m-%d %H:%i:%s'') AS TDBC_TSU FROM admin_db.test_odbc_3 WHERE TDBC_ID = 23')
SET    TDBC_DESC = 'mydesc'
WHERE  TDBC_ID = 23

内容的提问来源于stack exchange,提问作者ehoefler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:15:01