【问题标题】:Calling sql server stored procedure using python pymssql使用 python pymssql 调用 sql server 存储过程
【发布时间】:2022-01-08 00:01:19
【问题描述】:

我正在使用 pymssql 从 python 执行 ms sql 存储过程。当我尝试执行存储过程时,它似乎没有被执行。代码在没有任何错误的情况下完成,但在验证后我可以看到该过程并未真正执行。令我困惑的是,像 select 和类似查询这样的常见查询正在起作用。这里可能缺少什么?我尝试了以下两种方法。存储过程没有任何参数或参数。

cursor.execute("""exec procedurename""")

cursor.callproc('procedurename',())

编辑:该过程加载一个包含一些最新数据的表。当我从本地执行 proc 时,它会使用最新数据加载表,但我可以看到使用 pymssql 从 python 完成时没有加载最新数据。

【问题讨论】:

  • 根据Calling stored procedures 文档,callproc 是首选方式。
  • 你说程序没有真正执行是什么意思?是否意味着插入新记录、更新或删除现有记录?请Edit您的问题提供更多信息。
  • 过程是否返回多个结果集或消息?
  • 对问题进行编辑以添加有关程序正在执行的操作的信息。该过程不返回任何结果集。
  • 当从 Python 调用它时,您是在之后调用 Connection.commit(),还是将 Connection.autocommit 属性设置为 True

标签: python sql-server stored-procedures pymssql database-cursor


【解决方案1】:

感谢 AlwaysLearning 提供解决问题的关键线索,我在过程调用后添加了 connection.commit() 并开始工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多