|
|
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Уважаемые мастера! Есть 2 таблицы. В одной накладные(ключевое поле - N накладной), а в другой товар(ключевое поле - счетчик) по этим накладным. По идее, при удалении накладной из одной таблицы, должен удаляться весь товар по этой накладной из другой (у них связь по номеру накладной и каскадное удаление). Но на практике удаление происходит, если одной накладной соответствует только одна запись в таблице с товаром, если 2 и больше, то выдает ошибку (мол, подзапрос вернул более одного значения). Может кто знает, как с этим бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:33 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
сделать связь таблиц один-ко-многим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:37 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Внешний ключ таблицы строк накладных-номер накладной? Если стоит "каскадное удаление" - все должно удаляться. Ты чего-то недоговариваешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:38 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
В подчиненной табле должен быть внешний ключ?Он есть?Организовывать связь по полям со счетчиком вариант плохой! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:38 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
А по какой связи у тебя тогда "Каскадное удаление" стоит? Я думал по связи "ЗаголовкиНакладной.НомерНакладно=СтрокиНакладной.НомерНакладной". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:45 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
первичный ключ в таблице с накладными, а внешний ключ в подчиненной таблице по номеру накладной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:45 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
labanga, Ты нас где-то дезинформируешь. Все должно работать (удалять). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:49 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
может какая-то фигня в настройках аксэса, потому что и связь есть и каскадное удаление стоит и удаляет, но только если 1 подчиненная запись, а если 2 то выдает ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:52 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
И чего там в ошибке пишет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:53 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=,<,> or when the subquery is used as an expression ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:57 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
а может у тебя какой триггер висит на этих таблах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 15:59 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Причем тут подзапросы, я чего-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:00 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Может у тебя в запросе не удаление туфта к-н? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:02 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
да, триггер висит - при удалении из подчиненной таблицы происходит обновление 3-ей таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:02 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Попробуй руками удалить строчку, у которой есть "подчиненные" и посмотреть, отработает ли каскадное удаление... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:03 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
так я руками и делаю. когда 1 подчиненная запись, то все работает как нужно, но когда их 2, то выдает ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:06 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
>при удалении из подчиненной таблицы происходит обновление 3-ей таблицы так здесь собака и порылась. на этом он и стопорит. вываливай код, будем думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:08 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Тогда убери этот триггер, и попробуй без него, если отработает - дело в триггере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:09 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Да и вообще видимо это в другой форум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:16 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
убрал триггер и все заработало, но в чем тут дело? этот триггер обновляет данные в 3-ей таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:16 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
в чем дело, в чем дело. В ТРИГГЕРЕ ДЕЛО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:19 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
sasha_1, Кстати, интересно узнать, что это такое - триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:21 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Именно в триггере и дело Который, очевидно, расчитан на удаление только одной строки Используется там что-нибудь типа Where чтото = (Select ID From Deleted) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:22 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
>Where чтото = (Select ID From Deleted) во-во и я о том же. 2 Varan триггер - енто процедурка такая, которая запускается автоматом после изменения/удаления данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:24 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Это в каком Аксессе такой прибамбас есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:25 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
в данном случае идет работа с MS SQL через аксэс 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:30 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
2 labanga У тебя еще вопросы остались или сам(а) разберешься с триггером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:32 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
может подскажете как изменить триггер FOR DELETE AS DECLARE @kod nvarchar(55) DECLARE @kolvo float SELECT @kod=(SELECT [КодТовара] FROM deleted) SELECT @kolvo=(SELECT Количество FROM deleted) UPDATE [3dTab] SET Kol=Kol-@kolvo WHERE ([КодТовара]=@kod) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 16:37 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Совсем навскидку, просьба не пинать Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 17:17 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Только наверное Select Sum ([Количество]) From Deleted Where Deleted.[КодТовара]=[3dtab].[КодТовара] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 17:19 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Скоро посетители форума SQL server поймут, насколько умные люди отвечают на вопросы в форуме Access, и перебегут сюда :-) ...Мне недавно, правда, на акцессовский вопрос насчет подзапросов на ихнем форуме хорошо ответили, но потом этот вопрос удалили (а может, я просто его не нашел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 17:27 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Я вообще-то не уверен, что правильно написал. Первый триггер должне был комом получиться (с почином меня). Да он и выглядит как-то до безобразия коряво. Почему в MS SQL нельзя Inner Join проапдейтить? Тайна, покрытая мраком... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 17:33 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 18:11 |
|
||
|
каскадное удаление
|
|||
|---|---|---|---|
|
#18+
и вариант Лоха Позорного Код: plaintext 1. 2. 3. 4. и вариант Владимира Смирнова Код: plaintext 1. 2. 3. 4. 5. работают, но при удалении накладной выдается ошибка Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 10:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1679505]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 399ms |

| 0 / 0 |
