我正在尝试在MSSQL数据库中添加新的自动递增的行,并读取创建的id值。当我这样做时,SQL语句可以正常运行,但是一旦我尝试从返回的ResultProxy对象中查询行,我就会收到“函数序列错误”
我正在使用SQL Alchemy(pyodbc)连接到数据库,并使用execute()运行文本查询。通过SQL Management Studio运行SQL命令可以正常工作。
这就是我正在尝试的;
from sqlalchemy import create_engine
from sqlalchemy.sql import text
dbstring = "mssql+pyodbc://<SNIPPED>"
engine = create_engine(dbstring)
con = engine.connect()
res = con.execute(text("""INSERT INTO test(v) OUTPUT INSERTED.id VALUES( :v )"""), {"v": 10})
print(res) # This prints <sqlalchemy.engine.result.ResultProxy object>
print(res.first()) # This is the line where things go wrong
最后一行代码会导致以下错误;
sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('HY010', '[HY010] [Microsoft][SQL Server Native Client 11.0]Function sequence error (0) (SQLFetch)')
有什么想法我做错了吗?
谢谢安德鲁