Den*_*tes 6 python sql-server sqlalchemy
我正在使用 Python 和 sqlalchemy 来清空存储在 SQL Server 中的表。看起来作为函数参数给出的 SQL 查询session.execute根本不执行。该表仍然包含数据。
当我在 SQL Server MS 中打印并运行相同的查询时,它完全按照预期执行。
感谢帮助!
tableName = 'someTable'
engine = sqlalchemy.create_engine('connectionString')
Session = scoped_session(sessionmaker(bind=engine))
currentSession = Session()
query = 'IF ('
'EXISTS ('
'SELECT * FROM INFORMATION_SCHEMA.TABLES '
'WHERE TABLE_SCHEMA = \'dbo\' '
'AND TABLE_NAME = \'%s\')) '
'BEGIN '
'DELETE FROM [database].[dbo].[%s] '
'END' % (tableName,tableName)
session.execute(query)
print(query)
Run Code Online (Sandbox Code Playgroud)
问题是您没有提交交易。根据您的配置,您需要将autocommit设置为 True,或在执行后提交事务(通常在需要回滚的多个事务中处理):
您可以在这里设置:
sessionmaker(bind=engine, autocommit=True)
Run Code Online (Sandbox Code Playgroud)
或者:
session.commit()
Run Code Online (Sandbox Code Playgroud)
参考sessionmaker():
http://docs.sqlalchemy.org/en/latest/orm/session_api.html
| 归档时间: |
|
| 查看次数: |
5275 次 |
| 最近记录: |