SQL 多次插入 1 个表,然后使用外键多次插入表

问题描述 投票:0回答:1

我有 2 个表,UserUserRole。 UserRole 引用 User 表的 ID

我想一次向两个表插入多行。目前,我使用表值参数,但我在使用插入语句时遇到困难。

我可以轻松地在 for 循环中完成此操作,但我读到 for 循环在 SQL 中效果不佳。

例如,我为插入创建以下表值参数:

用户名

  • 内森

用户角色

  • 乔,管理员
  • 内森,客人

我很难思考如何在用户表插入后获取用户ID,并使用该用户ID作为UserRoles表中的外键。

编辑: 我正在使用 SQL Server。

编辑2: 理想的最终结果是:

用户

1、乔 2、内森

用户角色

1、管理员 2、嘉宾

sql sql-server stored-procedures sql-server-2019
1个回答
1
投票

我不确定这是否是您所需要的?如果没有,我会删除我的答案,以便其他人也可以尝试提供帮助。

CREATE TABLE User_t(identity_column INT IDENTITY(1,1) primary key, name varchar(100));

create table UserRole_t(U_id int, Role varchar(100)
                      CONSTRAINT fk_user
                      FOREIGN KEY (U_id)
                      REFERENCES User_t(identity_column));

insert into User_t(name) values('Joe');
Insert into UserRole_t select SCOPE_IDENTITY(), 'admin';

演示

© www.soinside.com 2019 - 2024. All rights reserved.