Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
В SQL Server 7 нет возможности стандартным путем организовать каскадное обновление при создании внешних ключей, надо писать тригер. Но как его сделать не знаю. Ситуация такая: в родительской таблице есть первичный ключ и он единственный уникальный ключ в ней. Как же мне определить соответствие записей в таблицах inserted и deleted если первичный ключ изменился? Т.е. старое значения я могу найти, а на какое новое оно изменилось нет, потому что нет связи между таблицами inserted и deleted. Единственная возможнось, на мой взгляд, надеяться, что изменена была только одна запись, тогда проблема решаема. Но я хочу найти решение для общего случая, когда изменяется нескользо записей в одном опереторе сразу. Если кто знает решение, прошу помочь. С уважением, Томас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 06:00 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
Действительно интересная проблема, которая на мой взгляд может быть решена только вводом дополнительного уникального поля в родительскую таблицу, например alter table mytable add ext_key uniqueidentifier default newid() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 07:21 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
Дык на то он и ключ чтоб он не менялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 08:35 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
Иногда, все таки, и ключи менять приходится. Хотелось бы красивое решение найти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 09:54 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
Разрешить изменять только по одной записи, тогда в inserted/deleted то же будет по одной записи и не надо будет ломать голову, что чему соответсвует. В inserted - новый ключ, в deleted - старый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 10:06 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
...IMHO это единственный вариант без изменения структуры (как советовал Pandre) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 10:08 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
Родилась крамольная мысь, хотя подтверждения в Books Online я не нашел: порядок следования записей в inserted соответствует порядку в deleted, тогда можно курсором бежать одновременно по обоим таблицам и модифицировать ссылки в других таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 11:02 |
|
||
|
Как сделать триггер для Каскадного Обновления по первичному ключу?
|
|||
|---|---|---|---|
|
#18+
2 Pandre Мысль действительно крамольная Данная проблема не так давно рссматривалась мной в MS SQL 7.0 каскадное обновление можно организовать но только для одной записи как советовал Glory, закладываться на одинаковый порядок записей в inserted и deleted не стоит, можно немножечко обломаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2001, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32015899&tid=1825219]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 417ms |

| 0 / 0 |
