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

使用pyodbc调用SQL Server(Synapse)存储过程无报错但未插入数据

问题排查与解决:PyODBC调用Synapse存储过程无插入记录

核心问题修正

你的代码存在两处关键错误,导致存储过程未正确执行插入操作:

  1. 存储过程调用语法错误:SQL Server(含Synapse)中调用存储过程时,参数不需要包裹括号,原代码里的EXEC my_sp (?,?,?)是错误写法,正确格式应为EXEC my_sp ?, ?, ?。
  2. 参数传递格式错误:cur.execute(sql,(values))中,values本身已是元组,额外包裹括号会形成嵌套元组,导致参数无法正确绑定,应直接传递values。

修正后的代码:

sql = "EXEC my_sp ?, ?, ?"
values = (str(v1), str(v2), int(v3))
cur.execute(sql, values)
conn.commit()

额外排查方向

如果修正后仍未解决,可检查以下点:

  • 确认PyODBC连接的数据库实例、库名与SSMS中使用的完全一致,避免连接到错误环境。
  • 验证v1、v2、v3的实际值是否符合存储过程参数及目标表的约束(如字段长度、数据范围),部分情况下不符合约束会导致静默插入失败。
  • 在存储过程中添加日志逻辑(比如插入参数信息到日志表),确认存储过程是否被正常调用,以及参数是否正确传入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:55:34