插入行并获取其id并将该id插入另一个表的存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入行并获取其id并将该id插入另一个表的存储过程相关的知识,希望对你有一定的参考价值。

我有一个表user

Id | Name | Email

我有另一张桌子employee与列

Id | UserId | Designation

有没有办法写一个存储过程,我在User中插入一行并获取Id,然后使用Id(作为UserId)在Employee表中插入一行?

答案

当然 - 没问题 - 尝试这样的代码:

CREATE PROCEDURE dbo.InsertUserAndEmployee 
    (@Name VARCHAR(100), 
     @Email VARCHAR(255), 
     @Designation VARCHAR(100)
    )
AS 
BEGIN
    -- Insert into "User"
    INSERT INTO dbo.User (Name, Email)
    VALUES (@Name, @Email);

    -- get the newly inserted ID
    DECLARE @UserId INT;
    SELECT @UserId = SCOPE_IDENTITY();

    -- Insert into "Employee"
    INSERT INTO dbo.Employee (UserId, Designation)
    VALUES (@UserId, @Designation);
END

以上是关于插入行并获取其id并将该id插入另一个表的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

在java中获取数据库表的最后插入记录ID? [复制]

如何执行存储在 MySQL 中的将 ID 从一个表插入到另一个表的过程?

如何获取最后插入的自动递增 id 并将其插入 laravel 中的另一个表中?

在 sql 查询期间获取 Id 并用于另一个插入语句

将数据从一列插入另一个表的两列的过程

从一个表中选择行并插入到另一个表中