获取最后插入的id另外方法】的更多相关文章

在此记录备忘. CREATE TABLE tb_test(custid INT IDENTITY(1,1) NOT NULL , name nvarchar(200) NOT NULL) DECLARE @cid TABLE(cid INT) DECLARE @c2 INT INSERT INTO tb_test(name) OUTPUT INSERTED.custid INTO @cid VALUES('a') SELECT * FROM @cid c DROP TABLE tb_test…
mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;       …
我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;        ResultSet rs=null…
LAST_INSERT_ID() 自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值. MySQL的LAST_INSERT_ID的注意事项: 第一.查询和插入所使用的Connection对象必须是同一个才可以,否则返回值是不可预料的. mysql> SELECT LAST_INSERT_ID(); -> 100 使用这函数向一个给定Connection对象返回的值是该Connection对象产生对影响AUTO_INCREMENT列的最新语…
在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁.     这种做法需要的步骤比较多,有些麻烦,而且并发性也不好.有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作.乍一看,它和select max(id)很象,但实际上它是线程安全的.也就是…
SQL Server 2000中,insert数据的时候返回自动编号的id,有三种方法实现SCOPE_IDENTITY.IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值. IDENT_CURRENT :返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表.IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值. @@IDENTITY: 返回为当前会话的所有作用域…
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表. @@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值. SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值 也许大家对SQL Server中的 @@IDENTITY 都不陌生,都知道它是获取数据表中最后一条插入数据的IDENTITY值.比如,表 A 中有个 ID 为自增1的字段,假设此时 I…
create procedure sp_AddUser1@Name nvarchar(200), @Remark nvarchar(200),@Flag int as begin declare @id int insert into User(Name,Remark,Flag) values(@Name, @Remark,@Flag)set @id = scope_identity()update User set Sort=@id where ID=@idend create procedu…
SCOPE_IDENTITY()函数 返回的是紧跟这个插入语句生成的自增ID, 若果前一个语句不是插入自增ID的,将返回NULL @@IDENTITY 返回全局的最有一个生成的自增ID,全局可用 create table test( id int identity ,v int ) insert into test(v)values(1) select SCOPE_IDENTITY() SELECT @@IDENTITY 结果 Note 有的地方喜欢使用 output inserted.tab_…
解决方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能获取所有插入的id,然后插入一个表中 注:如果不想用批量插入id做关联的其他业务逻辑,而只是简单的返回给前台,那么可以直接使用output功能返回这些id,不需要插入表. DECLARE @tmpTable TABLE ( Iden INT IDENTITY(1,1), ColumnName VARCHAR(…