MSSQL:使用2个select语句时INSERT记录

时间:2014-05-08 15:09:28

标签: select insert

对于MSSQL数据库的初始填充,我需要通过脚本将所有角色添加到所有用户。

所以基本上这就是我想到的,但当然VALUES部分需要正确实现。

表用户 约翰一个 2意志 3凯特

表格角色 1可以查看仪表板 2可以查看报告 3可以编辑数据

表UserRole,PK(和FKs)UserId和RoleId

  • 1,1
  • 1,2
  • 1,3
  • 2,1
  • 2,2
  • 2,3
  • 3,1
  • 3,2
  • 3,3

INSERT INTO UserRole(UserId,RoleId)VALUES(User.Id,Role.Id)

谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

这个怎么样?

create table [User] (ID int identity(1,1),Name varchar(20))

create table [Role] (ID int identity(1,1),RoleName varchar(50))

create table [UserRole] (UserId int, RoleId int)

insert into [User] (Name) values ('John')
insert into [user] (Name) values ('Will')
insert into [User] (Name) values ('Kate')

insert into Role (RoleName) VALUES ('Can view dashboard')
insert into Role (RoleName) VALUES ('Can view reports')
insert into Role (RoleName) VALUES ('Can edit date')


INSERT INTO [UserRole] (UserId, RoleID)
select U.ID,R.ID from [User] U,[Role] R

select * from UserRole
ORDER BY UserID,RoleId

应该为您提供您期望的输出