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来检索. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sqlite – SQLAchemy中的ProgrammingError线程错误
- 如何做好Flex与Java交互
- 正则表达式模式,用于检查字符串中每个单词的第一个字母,如果
- postgresql计算球面距离的一个应用
- flex可以通过中间件tomcat发布成web项目
- W/ResourceType( 4896): Bad XML block: header size 215 o
- Flex:将参数发送到Alert closeHandler
- 使用VB开发SQL Server应用程序
- c# – 如何在使用Roslyn进行编译时设置程序集版本,文化和公
- c# – 针对部署到多个环境的Web App的VS Application Insig