将行ID插入MSSQL时,pyodbc中Python中的函数序列错误

时间:2019-04-06 14:19:48

标签: python sqlalchemy pyodbc

我正在尝试在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)')

有什么想法我做错了吗?

谢谢安德鲁

0 个答案:

没有答案