加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 返回最后插入的ID,而不使用第二个查询

发布时间:2020-12-15 06:47:48 所属栏目:百科 来源:网络整理
导读:我正在使用SQL Server 2008的ASP.NET项目(C#). 当我在数据库中的表中插入一行时,我想获取最后插入的ID,这是表的IDENTITY(自动递增). 我不想使用其他查询,并且做一些像… SELECT MAX(ID) FROM USERS; 因为 – 即使只有一个查询 – 它感觉很跛脚… 当我插入某
我正在使用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来检索.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读