我正在尝试使用 SQLAlchemy 和 pymssql 在远程 MSSQL 数据库中执行 TSQL 查询。我已经直接在数据库中测试了我的程序查询,它按预期工作,如果我直接通过 pymssql 运行它,它也可以工作。如果我运行常规的单行查询,例如:
select table_name from INFORMATION_SCHEMA.tables
通过 SQLAlchemy,这也可以正常工作。但是当我尝试执行以下 TSQL 查询时,它实际上并没有创建表:
IF NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'SOME_TABLE')
BEGIN
CREATE TABLE SOME_TABLE (SOME_TEXT VARCHAR(255), SOME_TIME DATETIME)
END
它在成功时运行它,如果我尝试从执行中读取结果,它会按预期给我“资源已关闭错误”,因为它是一个 CREATE 查询。但是,如果我尝试将数据添加到表“SOME_TABLE”中,它会向我呕吐并说该表不存在。感觉它只是将查询作为函数上传,但从不执行它。有任何想法吗?甚至更好;使用 SQLAlchemy 和 pymssql 执行时实际工作的 TSQL 查询。
谢谢,