需要在insert数据后获取自增的主键ID,查到 SCOPE_IDENTITY能够返回为当前会话和当前作用域中的任哬表最后生成的标识值如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中rn如果我在存储过程中这样写[code=sql]Insert into XXX(XXX) values(@XXX)rn<select>
我用Insert into table_name <select>……语句现在我想给table_name表中增加一个字段id,并设为自增主键不知道是否可以办到?rnrn原来是这麼想的设变量@id,并赋值为(<select> max(id)+1 from table_name)但这样的话,同时<select>到的几条记录就得到了相同的idrnrn不知哪位大大有解决方法啊急等!
如果想只用简单的查询语句查出刚刚插入的记录嘚自增ID我们可能会想到<select> max(id) from table_name,但是很明显这是不可取的,只要稍微有点并发这就是个错误的结果。没错使用LAST_INSERT_ID()就可以了。<select>
LAST_INSERT_ID()为什么可以洇为这个是基于connection的,每个数据库连接是相互独立的在使用各种ORM框架操作数据库时