Return 使用 SQLAlchemy 和 SQL 服务器插入的行的主键

Return primary key of inserted row using SQLAlchemy & SQL Server

我正在尝试插入一行并保留主键以供下游应用程序使用。我似乎无法在 SQLAlchemy 中检索值,但在我的数据库管理系统中似乎工作正常。

这是基本代码

sql = """
INSERT INTO [workflow_execution_status]([workflow], [requested_by], [requested_datetime], [experiment_id])
OUTPUT Inserted.execution_id 
VALUES (?, ?, ?, ?)
"""

with engine.connect() as connection:
    result = connection.execute(sql, ('test_workflow', 'test_user', datetime.datetime.now(), 0))
    for row in result:
        print(row)

但这是我收到的错误:

DBAPIError: (pyodbc.Error) ('HY010', '[HY010] [Microsoft][ODBC Driver 13 for SQL Server]Function sequence error (0) (SQLFetch)')

我猜我在使用 SQLAlchemy 时做错了什么 -- 希望有人能给我指出正确的方向。

AlwaysLearning 的解决方案是正确的。附加“SET NOCOUNT ON;”到查询的顶部,例如

sql = """
SET NOCOUNT ON;
INSERT INTO [workflow_execution_status]([workflow], [requested_by], [requested_datetime], [experiment_id])
OUTPUT Inserted.execution_id 
VALUES (?, ?, ?, ?)"""