Klemanso ТС
|
 |
« : 10 Мая 2012, 09:02:52 » |
|
при восстановлении наглухо убитой БД (SQL-2005) вылезли две такие штучки
|
|
|
Записан
|
 Памяти DNS посвящается....
|
|
|
Klemanso ТС
|
 |
« Ответ #1 : 10 Мая 2012, 09:04:56 » |
|
пока понимания первоисточника не нашел.... все прочие вылечились или заменой сохраненной процедуры из действующего БяКа или функции (оттуда же)
в первой ошибке согласно скрипту самой таблицы - null и быть не может, однако его вдруг стало потребно.... с чего ?! [FlagClose] [binary](1) NOT NULL,
во втором вообще никак не пойму что за бесенятки.....
|
|
« Последнее редактирование: 10 Мая 2012, 09:09:46 от Klemanso »
|
Записан
|
 Памяти DNS посвящается....
|
|
|
Klemanso ТС
|
 |
« Ответ #2 : 10 Мая 2012, 09:07:10 » |
|
повторить операцию восстановления - даже мысленно не предлагать, ибо этот вариант самый "многочисленный" по наличию информации :0.8 из 1.0, а сама операция на этих мощностях занимает трое суток
идентичные ошибки вылезали при всех предыдущих вариантах.......
|
|
|
Записан
|
 Памяти DNS посвящается....
|
|
|
Suko Fomkin
Живёт здесь
   
Карма +426/-0
Offline
Пол: 
Сообщений: 634
Дядя Фёдор
Москва)) г. Троицк ИЖ 2126 - 030 2003г; (Митсубиси Галант 2000г. Европа 2.5АТ в максималке - продан) NISSAN Teana 2007г. 2.3
|
 |
« Ответ #3 : 10 Мая 2012, 09:57:06 » |
|
Хмм. Во второй получается подзапрос вернул более чем одно значение, что не допустимо если подзапрос образован =, !=, <=, <, >, >=. Дальше должно быть: or when the subquery is used as an expression. Но тут только кракозябры. Пара сцылок в помощь: Вот тут посмотреть можно. Вот тут еще на форуме посмотреть можно.
|
|
|
Записан
|
|
|
|
Klemanso ТС
|
 |
« Ответ #4 : 10 Мая 2012, 13:53:56 » |
|
ну перевод то мне известен.. весь вопрос в том, что в исправной БД все эти же самые запросы и все работает...
|
|
|
Записан
|
 Памяти DNS посвящается....
|
|
|
Suko Fomkin
Живёт здесь
   
Карма +426/-0
Offline
Пол: 
Сообщений: 634
Дядя Фёдор
Москва)) г. Троицк ИЖ 2126 - 030 2003г; (Митсубиси Галант 2000г. Европа 2.5АТ в максималке - продан) NISSAN Teana 2007г. 2.3
|
 |
« Ответ #5 : 10 Мая 2012, 18:02:31 » |
|
Сами запросы бы посмотреть...
|
|
|
Записан
|
|
|
|
Klemanso ТС
|
 |
« Ответ #6 : 10 Мая 2012, 19:43:54 » |
|
тупо говоря - вывод остатков по складу и в мыслях не может быть только одного ряда штук 50-100 как нефиг делать
|
|
|
Записан
|
 Памяти DNS посвящается....
|
|
|
Suko Fomkin
Живёт здесь
   
Карма +426/-0
Offline
Пол: 
Сообщений: 634
Дядя Фёдор
Москва)) г. Троицк ИЖ 2126 - 030 2003г; (Митсубиси Галант 2000г. Европа 2.5АТ в максималке - продан) NISSAN Teana 2007г. 2.3
|
 |
« Ответ #7 : 11 Мая 2012, 13:52:25 » |
|
хмм... ну при условии что все ячейки склада и количество товара в одной таблице должен срабатывать простейший запрос: select "Имя столбца с количеством товара в ячейке" from "имя таблицы с ячейками"
Таблицы по рядам разбиты? Если да то с innerjoin'ом поиграться.
|
|
|
Записан
|
|
|
|
OVA
Moдератор
   
Карма +1558/-118
Offline
Пол: 
Сообщений: 14758
Тула
Нормозавр 21261-070 (был). Нынче Фабула.
Тула ИЖ 21261-030
|
 |
« Ответ #8 : 11 Мая 2012, 14:27:09 » |
|
Ничего необычного. При поломке базы в NOT NULL - столбец затесался таки NULL. Исправляется заливкой данных в скрипт в виде операторов INSERT, очисткой исходной таблицы, поиском NULL в искомом поле и корректировкой значений прям в тексте скрипта и последующей заливкой данных обратно из скрипта. Муторно, но без вариантов. Никто правильных значений вместо NULL не придумает. Только человек. Ну или прям в таблице ковыряться, сделав select * from where ... IS NULL __... исправляюсь... Нет, невнимательно еррор-мессэдж прочитал. Тут ошибка при вставке. Следовательно, NULL во FlagClose лезет откуда-то из другого места. Дело не в существующих данных. __ Вторая ошибка - странновато. Обычно в выборках подобного рода (с проверкой на совпадение с единственным значением) используется первичный ключ какого-нибудь справочника. Ожидая единственную запись, подзапрос возвращает две или более. Следовательно, пахнет нарушением первичного ключа. Исправляется экспортом метаданных таблицы в скрипт, экспортом данных в скрипт (это на всякий случай, чтоб иметь возможность откатиться или бэкап базы перед ковыряниями сделать), удалением первичного ключа, поиском дубликатов, удалением или корректировкой дубликатов, возвращением первичного ключа на место.
|
|
« Последнее редактирование: 11 Мая 2012, 14:32:23 от OVA »
|
Записан
|
P.S. Василий. Еще один из беглых ижевчан. --- (ОКПП, ГБО, ЭСП), поборол электричество, "бустера" дворников нет 
|
|
|
Klemanso ТС
|
 |
« Ответ #9 : 11 Мая 2012, 14:36:40 » |
|
фсе пройдено и не раз... результат тот же... заманало, что на его скоростях - сервант работает трое суток при каждой заливке БД
листинг то как раз корректный по скриптам и синтаксису....
барабашка короче
|
|
|
Записан
|
 Памяти DNS посвящается....
|
|
|
|