我在SQL Server中有三个表:
用户表:
[user_id] [other_columns]
权限表:
[permission_id] [other_columns]
Users_Permissions表(多对多联接表):
[user_id] [permission_id]
我需要一次将相同的权限应用于多个用户,并将user_id
和permission_id
插入users_permissions
表中。
例如,我需要将users
表中的 all 个用户链接到permission_id
#5。我可以使用以下代码单独执行此操作:
INSERT INTO users_permissions (user_id, permission_id) VALUES (1, 5);
但是我该如何为users
表中的所有用户批量执行此操作?
奖金:
是否可以为每个用户都包含多个permission_id
?因此,如果我想对全部50个用户应用insert 8权限,该怎么办?
答案 0 :(得分:1)
INSERT INTO users_permissions (user_id, permission_id)
SELECT UserId, 5
FROM User
要执行多个操作,可以使用交叉连接。下面将为每个用户插入1到4的权限
INSERT INTO users_permissions (user_id, permission_id)
Select UserId, PermissionId
From User
Cross Join permissions
Where PermissionId in (1,2,3,4)