有没有办法使用pyodbc向sql server 2005插入请求scope_identity()
我有这个很棒的 pyodbc 库。我尝试下面的代码,它应该插入一行并返回行 ID,但它不起作用。顺便说一句,我在服务器和客户端上使用 sql server 2005,Windows 操作系统
...
con = pyodbc.connect('conectionString', autocommit = True)
cur = con.execute(
"insert into sometable values('something');
select scope_identity() as id"
)
for id in cur:
print id
...
有什么想法吗?
I have this great pyodbc lib. I try the code below, it supposed to insert a row and return the row id but it didn't work. by the way I'm using sql server 2005 on server and client is windows os
...
con = pyodbc.connect('conectionString', autocommit = True)
cur = con.execute(
"insert into sometable values('something');
select scope_identity() as id"
)
for id in cur:
print id
...
some idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用 OUTPUT 子句的一条语句
编辑:这应该可以解决 Joe S 评论的问题。
Try this, one statement with the OUTPUT clause
Edit: This should get around the issue commented by Joe S.
使用 SCOPE_IDENTITY() 是一种可行的方法,因为由于触发器的原因,使用 OUTPUT 和 @@IDENTITY 存在限制和怪癖。
使用您的代码片段,您只需添加对 nextset 的调用即可获取身份证号。
Using SCOPE_IDENTITY() is the way to go as there are limitations and quirks using OUTPUT and @@IDENTITY because of triggers.
Using your code snipped, you just need to add a call to nextset to get the id.