Публикация
Ошибка авторизации: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression
30 января 2018 04:16
,>=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'
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать