партнерский раздел
ФорумЭксплуатацияВложенный запрос вернул более одного значения

Эксплуатация » Вложенный запрос вернул более одного значения

День добрый!
При попытке удаления сотрудника (пока только такая ошибка на трех сотрудниках, остальные нормально) выскакивает ошибка "Вложенный запрос вернул более одного значения. Это запрещено, когда вложенный запрос следует после =, !=, = или используется в качестве выражения". Данные сотрудники отвязаны от ключей и их просто нужно удалить, ничем не отличаются от остальных... После попытки удаления и появления ошибки сотрудник исчезает из вкладки сотрудники, но до перезапуска АБД. Также после появления ошибки при любом действии в АБД выходит ошибка работы с БД. Лечится только перезапуском Орион Про на основном АРМ (перезапуск ядра опроса и сервера). Мыслей нет.
 

4 года 6 месяцев назад

avatar
Мысли есть. БД разваливается после некоторого глюка.
Архив всей БД, удаление архива сотрудников, можно и события удалить, чтобы база была легче, модернизация, слияние. Если есть навыки работы с МS SQL - можно ручками посмотреть в базу. Народ свои базы в Болид отправляет. 

Андрей, Ростов на Дону 4 года 6 месяцев назад

Все процедуры возможные встроенными сервисами болида уже проделаны. Идёт общение с ТП. тоже просят прислать базу, но уже вопрос от службы безопасности организации пошёл, каким образом базу с персональными данными сотрудников мы можем передать? Я этот вопрос задал ТП, пока жду ответа. Так как в базе все таки хранятся данные сотрудников (ФИО, место работы и т.д.). Чую мне придётся разворачивать базу в другом месте, удалять все персональные данные и отправлять им. После того как ТП найдёт решение, пусть пишут что делать. В SQL лезти нет желания, а то потом крайним я останусь.

Бабаев Евгений Валерьевич 4 года 6 месяцев назад

И что, слияние-модернизация сделаны, и проблема так же осталась, как и была?
Круто...
Модернизация-слияние делает копию базы данных рядом, на том же сервере. И старая БД при этом остаётся живой. Отдельное какое-то место не обязательно.
Сделать копию БД, удалить из неё ФИО или заменить их на нечто нейтральное, отправить в Болид, оттуда получить инструкции по лечению - Больно сложно. Не уверен, что так вообще бывает.

Андрей, Ростов на Дону 4 года 6 месяцев назад

Так в том-то и дела что не помогло. Обычно раньше все проблемы с БД как ра так и решались ))) Обновили Орион до 1.20 версия 3 постройка 5788. Проработало 3-4 месяца и все...

Бабаев Евгений Валерьевич 4 года 6 месяцев назад

Либо, разворачивать платный, полноценный SQL сервер, с необходимым инструментарием, для лечения, либо руками лезть, но в любом варианте, человек должен понимать, что и где искать, как проверять, а потом как лечить.

Карпов Дмитрий 4 года 6 месяцев назад

Ничего платить не надо :)
Для бесплатной Express версии сервера есть бесплатный же SQL Server Menedgement Studio Express
https://www.microsoft.com/ru-ru/download/details.aspx?id=8961

Андрей, Ростов на Дону 4 года 6 месяцев назад

Стоит она эта Studio. У меня работает выборка данных по odbc, для отдела кадров. А Studio использовалась для просмотра откуда эти данные забирать. Саму базу не ковырял, а только посмотрел какими параметрами данные забирать.

Бабаев Евгений Валерьевич 4 года 6 месяцев назад

Можно и сюда глянуть:
http://sqlserver-kit.org/ru/sql-server-utilities
 
http://sqlserver-kit.org/ru/ssms
 
https://docs.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
 
SSMS 18.5 - Дата выпуска: 7 апреля 2020
https://go.microsoft.com/fwlink/?linkid=2125901&clcid=0x419
Эта версия SSMS работает со всеми поддерживаемыми версиями SQL Server 2008–SQL Server 2019 (15.x).
 

Карпов Дмитрий 4 года 6 месяцев назад

При помощи студии (SSMS) для тех сотдурников, по которым проблема, нужно отследить все связи. Это весьма кропотливое занятие и без примерного представления стуктуры БД практически невыполнимое. Итак, у сотрудника есть различные свойства (карта, зоны доступа и т.д.) и каждую связь нужно проверить, но всё то, что может быть назначено для нескольких сотрудников (например зоны доступа) пока не рассматриваем. Нас интересуют индивидуальные свойства, начните с кода (карты). Что ищем? А искать надо записи с одинаковым значением индексного поля (id). Допустим сотруднику принадлежит карта c id=1234, в таблице карт ищем ещё записи с id=1234 и так для всех свойств и их вложенных ссылок.
Но можно чуть сократить работу. Для этого в АБД перед удалением сотрудника сначала отвяжем его от всего что только можно (уровни доступа, зоны, отдел, фото и т.п.). Вполне возможно, что на каком-то этапе словим сбой. Тогда искать надо именно в этом направлении. Отмечу, что проблема скорее всего глубже, чем на один ссылочный переход.
Для примерного понимания связей таблиц поищите на форуме соответствующую тему. В одной из них выкладывали ссылку на pdf-документ с описанием.
​Удачи!

P.S. Бабаев Евгений Валерьевич, у Вас два пути, обезличить базу и отправить в Болид, и разобраться самому. Как по мне, то второй предпочтительней хотя и очень затратный. Но как говорится "лучше день потерять, потом за пять минут долететь". 
P.P.S. Все экперименты нужно проводить на копии БД. При этом Орион Вам не нужен, только SQL-сервер, SSMS и светлая голова.

Налетов Константин 4 года 6 месяцев назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

0 ответов

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ПОКАЗАН

2878 раз

ЗАДАН

4 года 6 месяцев назад

ПРОДУКТЫ

Орион Про

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.