我有 2 个表,User 和 UserRole。 UserRole 引用 User 表的 ID。
我想一次向两个表插入多行。目前,我使用表值参数,但我在使用插入语句时遇到困难。
我可以轻松地在 for 循环中完成此操作,但我读到 for 循环在 SQL 中效果不佳。
例如,我为插入创建以下表值参数:
用户名
用户角色
我很难思考如何在用户表插入后获取用户ID,并使用该用户ID作为UserRoles表中的外键。
编辑: 我正在使用 SQL Server。
编辑2: 理想的最终结果是:
1、乔 2、内森
1、管理员 2、嘉宾
我不确定这是否是您所需要的?如果没有,我会删除我的答案,以便其他人也可以尝试提供帮助。
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';