pyODBC语句似乎正在运行但不影响表

时间:2018-07-18 10:12:17

标签: python sql pyodbc

我正在运行以下脚本;

from os import getenv
import pyodbc
import os
import sys

cnxn = pyodbc.connect('''
DRIVER={ODBC Driver 13 for SQL Server};SERVER=myServer\SQLEXPRESS;
DATABASE=myTable;UID=myID;PWD=myPassword''')

cursor = cnxn.cursor() #makes connection
cursor.execute("""

            UPDATE ShowroomCal
                SET ShowroomCal.isbusy = 'Yes'
            FROM ShowroomCal
                JOIN calendarbookings on calendarbookings.date=showroomcal.style112 AND calendarbookings.showroom=ShowroomCal.showroom_name
                WHERE CalendarBookings.date = showroomcal.style112 and ShowroomCal.Year='2018'
                """) #runs update statement

row_count = cursor.rowcount #counts afrfected rows
status_msg = "result returned. {} row(s) affected."
print(status_msg.format(row_count)) #prints affected rows

cnxn.close()

笔记本单元格返回“受影响的3行”。但是在SQL Express中查看时,要更新的表不会更改。

此后,我在查询窗口中从SQL Server Management中独立运行了该语句,它立即更改了将受到影响的三行,因此我知道表中的数据确实存在要更改的状态,并且该语句有效-至少从SQL的角度来看。

有人可以从Python的角度发现任何错误吗?

1 个答案:

答案 0 :(得分:1)

Scratch'N'Purr为我提供了答案,非常感谢。

如果其他人遇到同样的问题,那就是缺少

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

声明是问题之后。此后,我对此进行了测试,并且效果很好。