我想创建一个SQL Server 2012查询,它将一个常量的权限名称列表,例如"ViewUsersPermission","ModifyUsersPermission"插入表RolePermissions.
此表有两列:"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')
Run Code Online (Sandbox Code Playgroud)
我正在寻找更好的解决方案.我想指定一个权限类型列表,如:
SELECT FROM 'ViewUsersPermission', 'ModifyUsersPermission', 'ViewRolesPermission'
Run Code Online (Sandbox Code Playgroud)
而不是使用UNION ALL构造.
假设你至少在2008年
SELECT RoleName
FROM (VALUES('ViewUsersPermission'),
('ModifyUsersPermission'),
('ViewRolesPermission')) V(RoleName)
Run Code Online (Sandbox Code Playgroud)