Публикация

Ошибка авторизации: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression

,>=orwhenthesubqueryisusedasanexpression-Симптомы">Симптомы

После ввода логин и пароль получаем ошибку:

Exception Message: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Exception Type: System.Data.SqlClient.SqlException

Exception Source: .Net SqlClient Data Provider

Изображение удалено.

,>=orwhenthesubqueryisusedasanexpression-Причина">Причина

Данная ошибка может вонзинуть из-за обновления.

Дублирующие права с одинаковыми позициями.

,>=orwhenthesubqueryisusedasanexpression-Решение">Решение

С помощью запроса находим название (Code) дублирующихся прав:

select SAO.Code, SAOG.Position, count(sao.id) from sysadminoperationgrantee SAOG
 
join SysAdminOperation SAO on SAO.ID = SAOG.SysAdminOperationId
 
join SysAdminUnit SAU on SAU.ID = SAOG.SysAdminUnitId
 
group by SAO.Code, SAOG.Position
 
having count(sao.id) > 1

После того, как нашли название (например, "CanUseSharedMailBox"), необходимо найти список ID записи, которые являются дублями.

SELECT * FROM SysAdminOperationGrantee WHERE SysAdminOperationId = (SELECT Id FROM SysAdminOperation WHERE Code = 'CanUseSharedMailBox')

После того, как нашли, необходимо в одной из записей (не имеет значения в какой) изменить номер позиции. В результате не будет возникать дублей

UPDATE SysAdminOperationGrantee SET Position = 1 WHERE Id = 'C3665747-F6F6-474F-8CEE-5A7678883F4B'

 

Нравится

Поделиться

0 комментариев
Показать все комментарии