Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
Решил каскадом удалить записи - просто удаляем родителя и тр-ом детей. Все красиво,но на детках висит функционал (тр. на удаление), который нуждается в информации из родит. записи - той самой - удаляемой. Сказано - сделано, но где-то я налетал на такую вещь, что если запись в тр. то ее в базе уже нетути , она в deleted. А тр. там , за горизонтом, требует живую запись из парента , понимаешь. ПРим .ред. "Using the inserted and deleted Tables" During the execution of a DELETE or UPDATE statement, rows are deleted from the trigger table and transferred to the deleted table. The deleted table and the trigger table ordinarily have no rows in common. (это для снобов, которые скажут, что мол книжки читать надобно.) Ну ладно, это было давно и ... , используем INSTEAD OF ... , благо такой зверь уже появился. Проверяем - о живая запись еще тут, класс. Но, ноооооо, нифига себе (см.пример) , она и дальше тут (...били, били , эх где та мышка, что хвостиком махнула?). Загадка , кто не прав ? (ну понятно, что я, а вот где? ) create table t1(k int) insert into t1 (k ) values(1) insert into t1 (k ) values(2) insert into t1 (k ) values(3) insert into t1 (k ) values(4) insert into t1 (k ) values(5) insert into t1 (k ) values(6) insert into t1 (k ) values(7) insert into t1 (k ) values( go create trigger d1 on t1 INSTEAD OF delete as declare @d int select @d = t1.k from t1, deleted where t1.k=deleted.k print 'еще здесь: -> ' + cast(@d as varchar(12)) go --удаляем 3 запись delete from t1 where k = 3 print @@ROWCOUNT go -- а она еще тут, кто не прав ? select * from t1 where k = 3 go Если вы скажите , что условие select @d = t1.k from t1, deleted where t1.k=deleted.k кривое, смените тип тр. (например After или FOR)и выполните еще раз. Находит эту запись, на экран ничего не выводит, но где-то что-то находит, а вот уверенности у меня, как то все это не вызывает - боюсь использовать, ведь дров наломает. Поможите люди добри кто чем может!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2001, 11:41 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
>Решил каскадом удалить записи - просто удаляем родителя и тр-ом детей. Как я понял из примера используется SQL 2000, так почему тогда триггером? Ставьте каскад прямо в DRI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2001, 11:46 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую, но считайте что интерес спортивный? Т.е. ежели - DRI , то будем думать все Ок? Да вот над чем не дуиал - так это над тем, что есть в системе режим когда идет усиленный сброс данных или закачка. В этом случае используется disable trigger - на участвующих таблицах (режим однопользовательский)- отсюда - как поведет DRI? С уважением! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2001, 11:51 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
Т, что запись еще там - ничего особенного. Ты выполнил Instead of триггер, в котором ничего не удалил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2001, 12:59 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
При перекачке данных DTS триггеры действительно отключаются, а констрейны - нет. Правда, я не проверял на каскадных констрейнах, но, думаю, что тоже не отключают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2001, 13:01 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
ТАк мне еще и тр. писать delete эту же самую запись - нееееееееет ребята , пулемет я вам не дам. А на счет DTS - в 7 не отключались, были банально связаны 2 таблицы - нифига. Насчет 2к - попробуем, ну так как насчет instead of delete..... С уважением ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2001, 04:43 |
|
||
|
Решил каскадом удалить записи - ХАХАХАХА
|
|||
|---|---|---|---|
|
#18+
Не замерял время при перекачке из DTS, но при установленном каскаде в DRI были вот такие результаты при вставке записей в цикле (20000 записей) и потом удалении 20000 (конечно не в цикле ): на триггерах и DRI вставка проходила как 2:1 по времени (15 сек. против 7 сек.), удаление одинаково. И по поводуусиленного сброса данных - как же тут триггера отключишь, если в них "дочерние" записи удаляются Это при вставке. Но уж раз MS придумал каскад на уровне DRI, то его и нужно использовать, всяко-разно быстрее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2001, 06:52 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1825591]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 348ms |

| 0 / 0 |
