这是我们用来解决问题的代码。我们必须运行两个不同的脚本。脚本 A 我们一共要运行四次。运行一次,尝试导入,然后查阅日志以查找导致问题的角色 - 如果您收到另一个角色的错误。
要运行脚本 A,您必须使用RoleTemplateId
数据库中的有效值。我们只是随机选择了一个。您使用哪一个并不重要,因为您将使用脚本 B 删除该数据元素。
在所有角色都被修复后,我们得到了一个不同的错误(抱怨关于 的某些东西RoleTemplateId
已经与一个角色相关),并且必须运行脚本 B。这会RoleTemplateId
从多个不同的角色中删除 并将其设置为NULL
.
脚本 A:
insert into RoleBaseIds(RoleId)
values ('WXYZ74FA-7EA3-452B-ACDD-A491E6821234')
insert into RoleBase(RoleId
,RoleTemplateId
,OrganizationId
,Name
,BusinessUnitId
,CreatedOn
,ModifiedOn
,CreatedBy
)
values ('WXYZ74FA-7EA3-452B-ACDD-A491E6821234'
,'ABCD89FF-7C35-4D69-9900-999C3F605678'
,(select organizationid from Organization)
,'ROLE IMPORT FIX'
,(select BusinessUnitID from BusinessUnit where ParentBusinessUnitId is null)
,GETDATE()
,GETDATE()
,null
)
脚本 B:
update RoleBase
set RoleTemplateId = NULL
where RoleTemplateID='ABCD89FF-7C35-4D69-9900-999C3F605678'