Я пытаюсь добавить новую автоматически увеличенную строку в базу данных MSSQL и прочитать созданное значение идентификатора.Когда я делаю, оператор SQL работает нормально, но как только я пытаюсь запросить строку из возвращенного объекта ResultProxy, я получаю «Ошибка последовательности функций»
Я использую SQL Alchemy (pyodbc) для подключения к базе данных.и используя execute () для запуска текстовых запросов.Выполнение команды SQL через SQL Management Studio работает нормально.
Это то, что я пытаюсь;
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)')
Есть идеи, что я делаю неправильно?
Спасибо, Андрей