查看此答案检索SQL中插入的行ID
简而言之,除了MAX(ID)之外,没有跨数据库的方法可以做到这一点-但这不是保证的结果,并且有很多陷阱,例如
- 其他插入可以介于最后一次插入和最大查询之间
- 不能与高事务表一起使用(max将发出读锁定,特定于rdbms的方法不会从任何表中读取)
与身份/自动编号/ auto_increment
/顺序有关的ANSI标准首次出现在SQL:2003中,等待所有主要的RDBMS实施。它很可能类似于Oracle
/ PostgreSQL序列。
SQL:2003标准对SQL:1999的所有部分(也称为SQL3)进行了较小的修改,并正式引入了一些新功能,例如:
-序列生成器,它允许标准化序列
SQL:2003的另一个更改是,
OUTPUT USING CLAUSE但是关于它的信息很少。Sybase和SQL
Server对其进行了不同的操作,因此目前尚不清楚它将如何推出。SQL Server将其实现为
INSERT INTO TBL(..)OUTPUT inserted.identity_colINTO @sometablevarVALUES(..)



