我想创建一个SQL Server 2012查询,该查询将一个恒定的权限名称列表插入到表RolePermissions中,例如“ ViewUsersPermission”,“ ModifyUsersPermission”。
该表有两列:“ RoleID”(是Roles表的外键)和varchar列“ PermissionTypeName”。
INSERT INTO [dbo].[RolePermissions] ([PermissionTypeName], [RoleID]) SELECT 'ViewUsersPermission' AS [PermissionTypeName] UNION ALL SELECT 'ModifyUsersPermission' AS [PermissionTypeName] UNION ALL SELECT 'ViewRolesPermission' AS [PermissionTypeName] INNER JOIN (SELECT [RoleID] FROM [dbo].[Roles] WHERE [Name] = 'Administrator')
我正在寻找更好的解决方案。我想指定一个权限类型列表,例如:
SELECT FROM 'ViewUsersPermission', 'ModifyUsersPermission', 'ViewRolesPermission'
而不是使用UNION ALL构造。
UNION ALL
假设您至少在2008年
SELECT RoleName FROM (VALUES('ViewUsersPermission'), ('ModifyUsersPermission'), ('ViewRolesPermission')) V(RoleName)