前端之家收集整理的这篇文章主要介绍了
c# – 返回最后插入的ID,而不使用第二个查询,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用
sql Server 2008的ASP.NET项目(C#).
当我在数据库中的表中插入一行时,我想获取最后插入的ID,这是表的IDENTITY(自动递增).
我不想使用其他查询,并且做一些像…
SELECT MAX(ID) FROM USERS;
因为 – 即使只有一个查询 – 它感觉很跛脚…
当我插入某些东西时,我通常使用ExecuteNonQuery(),它返回受影响的行数.
int y = Command.ExecuteNonQuery();
没有方法返回最后插入的ID而不使用另一个查询?
大多数人通过以下方式做到这一点:
INSERT dbo.Users(Username)
VALUES('my new name');
SELECT NewID = SCOPE_IDENTITY();
(或者,而不是一个查询,将其分配给一个变量.)
所以它不是真的两个查询表…
但是还有以下几种方法:
INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');
尽管如此,您将无法使用ExecuteNonQuery来检索.
原文链接:https://www.f2er.com/csharp/94605.html