我怎样才能获得最后插入的主键?(How can I get the last inserted pr

2019-07-17 22:36发布

我使用的是SQL Server 2005与类型主键字段的表varchar(40) 我得最后插入记录的主键值。 我曾尝试scope_identity ,但它无法正常工作。 我怎样才能得到呢?

Answer 1:

我发现的结果。

码:

insert into T
output inserted.pk
values ('new item');


Answer 2:

如果你的ID是一个varchar我想这是不会发生,所以你应该知道你插入一条记录之前自动。 顺便说一句你就不能选择你的身份证,你插入一条记录后? 事情是这样的:

CREATE PROC InsertXXX( ... value parameters...)
AS 
BEGIN
INSERT .....
SELECT ID FROM MyTable
END

更新 :

如果你想知道最后插入的记录,并插入一个新的记录之前,它的ID也可以是一个有点困难取决于ID值。

如果您可以通过排序ID列找到最后的记录,你可以如下做到这一点:

SELECT Max(ID) FROM myTable

如果没有,你可以有一个DateTime申请(CreationDate例如),它保存record.Then你可以做如下的插入时间:

SELECT ID FROM MyTable WHERE CreationDate=(SELECT Max(CreationDate) FROM MyTable)


文章来源: How can I get the last inserted primary key?