使用ado.net 如何获取新添记录的自增id值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ado.net 如何获取新添记录的自增id值?相关的知识,希望对你有一定的参考价值。

rt
SQL Server 2005数据库

参考技术A select LAST_INSERT_ID();可以查出最新产生的 AUTO_INCREMENT 值

insert以后执行查询
select last_insert_id();
就会返回刚插入的id值。
参考技术B insert_id() ...

或者是 get_insert_id() ...?

SQL 返回新增行的自增ID值方法

SQL 返回新增行的自增ID值方法:

1、使用output 语句

insert into Table1 (CreatedDate)  output  inserted.id  values (getdate())

output 从数据修改语句中返回输出,可以看作是“返回结果的DML”
SQL2005之后 Insert,Delete,Update语句 均支持Output语句。
在Output语句中可以引用inserted和deleted。使用方法同触发器类似。
该方法最大弊端就是需要指定主键。output Inserted.要返回的值。

 

2、使用@@identity

select @@identity

@@identity返回当前会话最后生产的标识列ID

用select @@identity得到上一次插入记录时自动产生的ID
存储过程,代码示例:SET @NewID=@@IDENTITY

 

区分,SCOPE_IDENTITY()  和   @@IDENTITY 

SCOPE_IDENTITY() 返回插入到当前作用域中的值,它是仅限在一个操作范围之内,

@@IDENTITY 不受限于特定的作用域。它总是获取最后一条变更数据的自增字段的值,

insert temp (temp1) values (‘hh‘) select SCOPE_IDENTITY() as dd

  

 

以上是关于使用ado.net 如何获取新添记录的自增id值?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中如何获取下一条插入的自增ID

MySQL AutoIncrement--PXC集群批量插入操作获取自增ID异常问题

VB.NET中ADO.NET的问题

如何获取自增id

如何得到SqlServer的自增ID

SQL 返回新增行的自增ID值方法