gpt4 book ai didi

sql-server - 如何使用 SCOPE_IDENTITY 检索最后插入的 ID

转载 作者:行者123 更新时间:2023-12-02 11:03:18 25 4
gpt4 key购买 nike

假设我有两张 table 。第一个表的主键是另一个表的外键。

Member 将其主键作为Member_detail 中的外键。

因此,当我使用存储过程在 Member 表中插入一行时,我需要获取主键值以添加到 Member_detail 表中。

我使用的一种方法是:

SELECT Max(MemberID) 
FROM Member

然后将此 Memberid 传递到我的 Member_detail 表,但在 following post 上,我读到不建议使用 Max 函数,我应该使用 SCOPE_IDENTITY,但我不知道如何使用它。

谁能给我举个例子吗?

最佳答案

SCOPE_IDENTITY 返回插入同一范围内标识列的最后一个标识值。

假设您有 2 个表:

Member: id int (primaryKey), name varchar

Member_Detail: id int (primaryKey), pk int (foreignKey), name varchar

你可以这样做:

DECLARE @MemberId int

INSERT INTO Member (name) VALUES ('hello');

SET @MemberId = SCOPE_IDENTITY()

INSERT INTO Member_Detail (pk, name) VALUES (@MemberId, 'hello again')

MSDN 引用:

SCOPE_IDENTITY (Transact-SQL)

Returns the last identity value inserted into an identity column in the same scope. A scope is a module: a stored procedure, trigger, function, or batch. Therefore, two statements are in the same scope if they are in the same stored procedure, function, or batch.

关于sql-server - 如何使用 SCOPE_IDENTITY 检索最后插入的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com