【发布时间】:2018-09-24 12:58:18
【问题描述】:
我有一个 SQLServer TSQL 查询,它有多个 INSERT 语句,从非常基本到有些复杂。
此查询适用于 SQLServer Management Studio。
当我使用 Python pypyodbc 包并运行脚本时,脚本运行但不提交。我尝试过使用和不使用 commit() 函数。
BUT 如果我在最后指定一个 SELECT 语句,则脚本会提交插入。
所以一切都很好,因为它可以工作,但是我在所有脚本的末尾添加了一个不适用的 SELECT 语句。
有没有人知道如何在没有 SELECT 语句的情况下提交这些内容?我不想将查询拆分为多个查询。
谢谢!
def execute_query(self,
query,
tuple_of_query_parameters,
commit=False,
return_insert_id=False,
return_results=True):
self.open_cursor()
try:
self.connection_cursor.execute(query,
tuple_of_query_parameters)
result_set = None
if return_results:
if return_insert_id:
result_set = self.connection_cursor.fetchone()[0]
else:
result_set = self.connection_cursor.fetchall()
if commit:
self.connection_cursor.commit()
except pypyodbc.Error as e:
print('Check for "USE" in script!!!')
raise
finally:
self.close_cursor()
return result_set
【问题讨论】:
-
请编辑您的问题以包含mvce。
-
输入你的 Python 代码(请使用 MVCE)。根据您所写的
commit应该可以解决问题,这可能只是一个小语法问题。 -
@sniperd 你可能是对的......我可能已经隐藏了提交功能。请查看我正在使用的执行代码。我将对其进行测试并报告。谢谢。
标签: python sql sql-server pypyodbc