我使用的是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?