Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Как удалить записи   Найти похожие ветки 

 
apl   (2006-05-30 08:46) [0]

Есть достаточно сложная база данных, пара сотен таблиц, представления, десятки процедур. Необходимо удалить некоторые записи. Если у записи в главной таблице нет подчиненных записей вообще, то запись удаляется при помощи ADOCommand. Если подчиненные записи есть, то не удаляет. Причем кол-во подчиненных записей есть не во всех таблицах.
Как вычислить (определить) все таблицы в которых нужно удалять записи, и, я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.


 
ORMADA ©   (2006-05-30 08:55) [1]

через системные таблицы посмотри зависимости таблиц
НО! лучше делать это самому т.к. непонятно куда могу привести такие КАСКАДНЫЕ удаления!

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

>то запись удаляется при помощи ADOCommand
хошь удалю при помощи АдоКвери?
ExecSql есть и в квери и в команд!

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


 
apl   (2006-05-30 09:35) [2]

А где в системных таблицах-то посмотреть что от чего зависит?


 
ЮЮ ©   (2006-05-30 09:41) [3]

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

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


 
apl   (2006-05-30 10:42) [4]

так мне и надо восстановить эту бизнес-логику
В своих разработках понятно гораздо проще, а если разгребаешь чужое наследство?


 
Sergey13 ©   (2006-05-30 10:50) [5]

2[4] apl   (30.05.06 10:42)
>а если разгребаешь чужое наследство?
То выгодно воспользоваться CASE инструментами типа ERWin и реинжинирингом базы.


 
ЮЮ ©   (2006-05-30 10:59) [6]

В EM создаешь диаграму, кидаешь нужную таблицу, задаешь нужный уровень вложенности и начинаешь разгребать таблицы, улавливая бизнес-логику.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
3-1146048913
Tornado
2006-04-26 14:55
2006.08.06
Вопрос опять про Access - > MS SQL


15-1152612327
SoftService
2006-07-11 14:05
2006.08.06
Оцените проект


15-1152620171
boriskb
2006-07-11 16:16
2006.08.06
Вот так программы писать надо.


9-1132413694
4ECHOK
2005-11-19 18:21
2006.08.06
Равномерное расположение N точек в ограниченной области.


15-1152504283
oleg_v
2006-07-10 08:04
2006.08.06
Сохранения списка файлов в формате *.nri (Nero)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский