我有一个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
答案 0 :(得分:2)
尝试一下:
self.connection_cursor.execute(query,
tuple_of_query_parameters)
if commit:
self.connection_cursor.commit() #put commit here, immediately after execute
我认为可以解决问题。