我有一个python脚本,自从我编写它以来,它已经插入到SQL Server表中几个星期了。突然它停止了插入,我可以看到它看起来像一个COMMIT问题,因为表中的主键标识ID列增加了-如果我在SSMS中执行T-SQL插入,我可以看到有几个ID值被跳过了。这些行似乎是插入的,但从外观上看是回滚的。我已经重新启动了SQL Server示例,并重新启动了我用来运行脚本的VS Code应用程序。没有成功。没有来自python/pyodbc的错误。我已经黔驴技穷了。有什么建议吗?
import pyodbc
SQL_DRIVER = 'SQL Server Native Client 11.0'
SQL_OUTPUT_TABLE = "test"
SERVER = "myServer"
DATABASE = "myDB"
def main():
cnxn = pyodbc.connect('DRIVER={'+SQL_DRIVER+'};SERVER='+SERVER+';DATABASE='+DATABASE+';Trusted_Connection=yes')
cursor = cnxn.cursor()
tsql : str = "insert into [dbo].[test](col1) values ('stuff');"
cursor.execute(tsql)
cursor.commit
cnxn.close
if __name__ == '__main__':
main()
已尝试替代SQL驱动程序。已创建您在此处看到的测试脚本以尽可能缩小范围。服务重新启动等。还可以成功地将行直接从SSMS内插入到表中。
1条答案
按热度按时间zu0ti5jz1#
我想我找到问题了。cursor.execute后面跟着conn.commit修复了它。