![]() |
![]() |
![]() |
|
MS SQL. Каскадное удаление записей | ☑ | ||
---|---|---|---|---|
0
Ахмадинежад
05.08.13
✎
14:47
|
Ну то есть при удалении записи в таблице документов, естественно, что нужно удалять таблицы табличных частей.
Где почитать, как настраивается сабж ? На первовыдающихся поисковиком ссылках - в основном форумы. Что называется, пошаговой инструкции нема. |
|||
1
Maxus43
05.08.13
✎
14:48
|
чем не устраивает в 1с удалять?
|
|||
2
Ахмадинежад
05.08.13
✎
14:49
|
(1)база большая. ооооочень долго.
|
|||
3
Maxus43
05.08.13
✎
14:51
|
(2) полностью таблицы надо очистить? или выборочные записи?
|
|||
4
Fragster
модератор
05.08.13
✎
14:52
|
через ПолучитьСтруктуруХраненияБазыДанных получаешь имена таблиц и дальше по ним удаляешь
|
|||
5
1Сергей
05.08.13
✎
14:53
|
триггера (триггеры?) использовать надо
|
|||
6
Ахмадинежад
05.08.13
✎
14:57
|
(3)выборочно, так бы дропнул..
(4)это всё есть, даже научился удалять по условию, но как только понадобилось удалять по JOIN (ну то бишь удаляю строку из таблицы документов - надо по ключу удалить строку из таблицы табличных частей документа) - усё.. (5)на одном форуме советуют, то триггеры то каскадное, вроде больше нарыл сторонников каскадного.. |
|||
7
Ёпрст
гуру
05.08.13
✎
14:59
|
(6) и ? примитивные 2 запроса на delete с известным ключом..
|
|||
8
Ёпрст
гуру
05.08.13
✎
15:00
|
нафига тебе какой-то там джоин ?
|
|||
9
Ахмадинежад
05.08.13
✎
15:00
|
(7)а можно пример ? ...
|
|||
10
Ёпрст
гуру
05.08.13
✎
15:03
|
||||
11
ptiz
05.08.13
✎
15:06
|
(10) Как я понял из кода этой обработки, там сделано "гениально просто": ID документов собираются в ТЗ, а потом идет перебор и очистка таб.части каждого документа отдельным запросом :)
|
|||
12
Ёпрст
гуру
05.08.13
✎
15:08
|
(11) да.
|
|||
13
Ёпрст
гуру
05.08.13
✎
15:09
|
ничто не мешает, влепить все во временную тз и сделать всё без обхода результатов первого запроса.
|
|||
14
Ахмадинежад
05.08.13
✎
15:20
|
(10)благодарю
|
|||
15
Серго62
05.08.13
✎
15:21
|
(7) Если нужно почистить документы, то двумя запросами не обойдешься. Например документ РеализацияТоваровИУслуг "размазан" по 8-ми таблицам
|
|||
16
МихаилМ
05.08.13
✎
15:26
|
настраиваете внешние ключи.
и при удалении ведущих ведомые удаляться. впрочем это зависит от субд. только будет проблема при реструктуризации. |
|||
17
rs_trade
05.08.13
✎
15:27
|
а че, у таблиц базы 1с внешние ключи есть?
|
|||
18
rs_trade
05.08.13
✎
15:27
|
каскадное же с внешними ключами работает.
|
|||
19
МихаилМ
05.08.13
✎
15:28
|
(16)
+ пересчет итогов отдельно сделать. |
|||
20
МихаилМ
05.08.13
✎
15:29
|
(17)
кто мешает настроить. много возможностей субд открывается если уметь бороться с проблемой пересоздания таблиц при реструктуризации. |
|||
21
rs_trade
05.08.13
✎
15:41
|
(20) проблему можно победить, но по мне лично не хочется иметь базу обвешанную всякими тригерами как новогодняя елка.
|
|||
22
rs_trade
05.08.13
✎
15:45
|
Внешние ключи можно повесить, удалить объекты, ключи снять.
|
|||
23
МихаилМ
05.08.13
✎
15:45
|
(21)
что тириггеры, что подписки - единое - новогодняя елка с какой стороны смотреть на 1с : из конфигуратора или из ssms. |
|||
24
rs_trade
05.08.13
✎
16:05
|
(22) хотя гораздо проще запрос написать на удаление
|
|||
25
Torquader
05.08.13
✎
23:16
|
При желании, можно выбрать все идентификаторы документов и по ним последовательно почистить сначала табличные части, а потом и сам документ.
Только, мне кажется, что проще всё же удалять из самой 1С. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |