|
|
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Я решил реализовать каскадное удаление данных из других таблиц при удалении строки из некой таблицы Customers. Для этого написал триггер: Код: plaintext 1. 2. 3. 4. 5. 6. Теперь при удалении строки из Customers следующая ругань: Код: plaintext 1. 2. 3. Замечу, что раньше ругался только при удалени сразу большого числа строк но теперь вообще не дает удалять. Пришлось пока убить этот триггер(без него все работает). Скажите, что я неправильно сделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:09:46 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Проверьте следующее: Это единственный триггер на таблице? На зависимых таблицах есть триггера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:15:44 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
В 2000м SQL каскадное удаление делается вообще без триггеров, если интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:19:53 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
I) To VVG: 1. Триггер единственный. 2. На одной зависимой таблице есть подобный триггер на удаление из другой подтаблицы. Но по-моему результат был такой же когда у зависимых таблиц небыло триггеров. II) Хмм... я в Books online вычитал, что SQL server не обеспечивает встроенных мех-ов каскадного удаления и обновления. Мол используйте для этого триггеры, а тут в вашем форуме встретились строки: Код: plaintext 1. 2. 3. 4. Как енто понимать? Может это потому-что у меня сервак 7.0, а не 2000? III) Кстати можно как нибудь увидеть все триггеры, имеющиеся в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:30:27 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Именно так и понимать, повторюсь: в 2000м SQL каскадное удаление делается вообще без триггеров . Именно такими строчками и делается, именно в 2000м SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:39:36 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
I) To VVG: 1. Триггер единственный. ............... III) Кстати можно как нибудь увидеть все триггеры, имеющиеся в БД. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 14:41:28 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Господа! А что, все таки на счет моего основного вопроса, из таблицы-то ничего так и не удаляется.(см. первое сообщение в теме). Только не советуйте пожалуйста прямо щас менять сервак на 2000 :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 20:39:03 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
У тебя происходит ошибка, скорее всего В ДРУГОМ триггере. Чтобы проверить, что и где как происходит, создай на время отладочную SP: Create pocerdure TTT as set nocount on delete from Customers where (... условие, по которому ты пытаешься удалить запись) Сохрани эту процедуру и запусти в отладчике. В отладчике всё время нажимай step into. Попадешь в отладку триггеров и увидишь то место, где происходит ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 21:00:55 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Можно поменять все запросы примерно на такие: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 21:01:04 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Скорее всего у вас все-таки есть триггер(ы) на удаление для какой-то из таблиц Telephones, Addresses, Emails, Contacts, который и вызывает данную ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 21:23:37 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Эврика! Вчитавшись еще раз в выдаваемое сообщение, я догадался в чем дело. У меня действительно были триггеры в связанных такого типа: Код: plaintext 1. 2. 3. Поменял =(select ...) на in(select ...) и похоже все заработало. Всем спасибо. ----------------------------------- PS: Извиняюсь за совсем чайниковый вопрос, но как запустить процедуру в отладчике. А то я пробовал следовать совету Garya, что-то отладчика не нашел с ходу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 11:17:36 |
|
||
|
Мой кривой триггер
|
|||
|---|---|---|---|
|
#18+
Вчитавшись еще раз в выдаваемое сообщение, я догадался в чем дело <-- да Вы, батенька, нахал. А если бы ты внимательно читал SQL.ru, то это озарение настигло бы тебя часов так 20 тому назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 11:29:00 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3383&tid=1819066]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 306ms |

| 0 / 0 |
