sql - 获取最后插入的行ID(用SQL语句)

标签 sql sql-server

我想在表中插入新记录时获取新创建的 ID。

我读到了这个:http://msdn.microsoft.com/en-us/library/ms177564.aspx但需要创建临时表。

我想在执行 INSERT 语句后返回 ID(假设只执行一个 INSERT)。

示例:

1     Joe      Joe
2     Michael  Mike
3     Zoe      Zoe

执行INSERT语句时,我想返回创建的ID,即4。

可以告诉我如何使用 SQL 语句做到这一点吗?还是不可能?

最佳答案

如果您的 SQL Server 表具有 INT IDENTITY(或 BIGINT IDENTITY)类型的列,那么您可以使用以下方式获取最新插入的值:

INSERT INTO dbo.YourTable(columns....)
   VALUES(..........)

SELECT SCOPE_IDENTITY()

只要您没有插入另一行,它就会起作用 - 它只会返回在此范围内分发的最后一个 IDENTITY 值。

至少还有两个选项 - @@IDENTITYIDENT_CURRENT - 详细了解它们的工作原理以及它们的不同之处(并且可能会给您带来帮助)意想不到的结果)在此 excellent blog post by Pinal Dave here .

关于sql - 获取最后插入的行ID(用SQL语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477502/

相关文章:

ios - iOS的同步框架提供程序

java - 使用 PreparedStatement.RETURN_GENERATED_KEYS 时出现 SQLException

SQL表选择

sql-server - 1D 中两条线段之间最短距离的高效算法

mysql - 我如何从MYSQL获取ID

sql - 使用 SQL 查找数据库记录中的间隙(缺失记录)

c# - 从 byte[] 更改图像 src

java - 检查用户名和密码是否存在于表中

sql - 插入 COALESCE(NULL,default)

mysql - UNION 在 ORDER BY 和 LIMIT 之后