|
|
|
Cascade update + INSTEAD OF ...
|
|||
|---|---|---|---|
|
#18+
Привет всем скьюэльщикам и скьюэльщицам, а также остальным братьям (сестрам(нужное подчеркнуть(можно чем нибудь острым прямо на мониторе))) по нещастью. Дык вот давича столкнулся с ограничением INSTEAD OF триггера, а именно - он не позволяет использовать каскадное обновление. Тогда как наиболее оптимально реализовать каскадное обновление в теле триггера? Че прописывать обновление с помощью явных ссылок на все связанные таблицы? А если структура поменяется или связанная таблица добавится? Че опять триггер переписывать? Мож глупо конечно - но не вяжется в голове - простота каскадного обновления и сложность его ручной реализации ... Мож есть вариант по просче и луччее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 17:29:51 |
|
||
|
Cascade update + INSTEAD OF ...
|
|||
|---|---|---|---|
|
#18+
Instead of триггер отрабатывает ДО отработки констрейнтов, в том числе каскадных. Это просто нужно знать. А вот те команды, которые выдаются изнутри Instead-триггера по модифицируемой таблице отработают уже с констрейнтами. Простой триггер работает ПОСЛЕ отработки констрейнтов, в том числе каскадных. Используй то, что тебе нужно в тех ситуациях, в которых требуется. Каскадные операции в любом случае отработают, не важно, запускаются они до триггера или после. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 17:37:36 |
|
||
|
Cascade update + INSTEAD OF ...
|
|||
|---|---|---|---|
|
#18+
2 Garya Извини, мож я че не понял, но по-моему как раз INSTEAD OF trigger и Cascade updates несовместимы. В BOL так написано: Are not allowed on tables that are targets of cascaded referential integrity constraints. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 17:51:46 |
|
||
|
Cascade update + INSTEAD OF ...
|
|||
|---|---|---|---|
|
#18+
2 Garya Кстати прочитал в вопросе по суррогатным и естественным ключам твое обвинение, че я мол лазутчик. Ниче подобного - я sql.ru/forum люблю и уважаю. Помоему он зе бест!!! А вопрос задал такой потому чо чайники мы еще. И делаем базу в первый раз. Хотя все равно похоже не зря - т.к. много интересных вещей в результате узнал. Так что я думаю приговор мой будет : "Казнить нельзя, помиловать" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 18:17:42 |
|
||
|
Cascade update + INSTEAD OF ...
|
|||
|---|---|---|---|
|
#18+
Извини, был не прав :(. Действительно, не удается создать instead-триггер при наличии констрейнтов с каскадными операциями... Век живи - век учись :) Ну что можно сказать? Либо: 1. Не используй cascade операции, реализуй их в самом триггере. 2. Не используй instead-триггер, вместо него используй обычный триггер. 3. Реализуй логику иначе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 18:48:30 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32057604&tid=1819662]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 466ms |

| 0 / 0 |
