【问题标题】:SQL Multiple Insert in 1 Table, then Multiple Insert into Table with Foreign KeySQL在1个表中多次插入,然后用外键多次插入表中
【发布时间】:2021-11-12 05:30:17
【问题描述】:

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

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

我可以在 for 循环中轻松做到这一点,但我读到 for 循环在 SQL 中不好。

例如我为insert创建如下表值参数:

用户名

  • 内森

用户角色

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

我很难思考如何在插入 User 表后获取 UserID,并将该 UserID 用作 UserRoles 表中的外键。

编辑: 我正在使用 SQL Server。

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

用户

1,乔 2、内森

用户角色

1,管理员 2、客人

【问题讨论】:

  • 你使用的数据库是什么?
  • SQL Server 2019

标签: sql sql-server stored-procedures sql-server-2019


【解决方案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';

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 2017-10-26
    • 2022-01-23
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多