我想在表中插入新记录时获取新创建的 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
值。
至少还有两个选项 - @@IDENTITY
和 IDENT_CURRENT
- 详细了解它们的工作原理以及它们的不同之处(并且可能会给您带来帮助)意想不到的结果)在此 excellent blog post by Pinal Dave here .
关于sql - 获取最后插入的行ID(用SQL语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477502/