我正在运行以下脚本;
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的角度发现任何错误吗?
答案 0 :(得分:1)
Scratch'N'Purr为我提供了答案,非常感谢。
如果其他人遇到同样的问题,那就是缺少
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
声明是问题之后。此后,我对此进行了测试,并且效果很好。