python获取sql server上次插入的id失败

python获取sql server上次插入的id失败,python,sql-server,Python,Sql Server,在SQL管理工作室中。 我可以先 insert into MyTable(Data) Values('test') 那就做吧 SELECT @@IDENTITY as ID 并获得正确的ID结果,这意味着我的SQL server运行正常 在python中,我尝试通过PyODBC执行相同的操作,以获取最后一个插入的id,即首次使用 sql_server_insert('insert into MyTable(Data) Values('test')') 第二次使用 result = sql_

在SQL管理工作室中。 我可以先

insert into MyTable(Data) Values('test')
那就做吧

SELECT @@IDENTITY as ID
并获得正确的ID结果,这意味着我的SQL server运行正常

在python中,我尝试通过PyODBC执行相同的操作,以获取最后一个插入的id,即首次使用

sql_server_insert('insert into MyTable(Data) Values('test')')
第二次使用

result = sql_server_select('select max(ID) as ID from MyTable')
我确实得到了刚刚插入的正确结果ID,这意味着我的插入和选择代码都可以工作

但是如果我使用

result = sql_server_select('SELECT @@IDENTITY as ID')

返回的结果为“无”


sql执行中没有异常。错在哪里?任何建议都将不胜感激。

我建议使用
输出
子句。这是返回新ID的推荐方法。看起来您已经在自己的函数中包装了PyODBC。此外,除非您有一个隐藏的全局变量(或者没有显示实际的代码),否则这两条语句可能在不同的连接中执行。尝试确保它们都在同一个连接中执行。谢谢Gordon。输出效果很好。我以前不知道。谢谢拉里。你指出了确切的原因,我需要在相同的连接中这样做。
result = sql_server_select('select SCOPE_IDENTITY() as ID').