Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Вот какая беда. Две таблицы связаны по составному ключу "один ко многим". В таблице "ко многим" есть записи с повторяющимися "ключевыми" значениями. При попытке удаления такой записи, выдаётся сообщение:"Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated." Я для чистоты эксперимента создал поле счётчик. Задаю условие на выборку по счётчику - выдаёт одну строку, а когда даю запрос на удаление с тем же условием, опять это сообщение. Где он находит ещё записи - не понятно. Что бы это значило. (Может это имеет значение - в таблице есть триггер, кот. при удалении изменяет главную таблицу (считает сумму по опр. полю). Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 07:46 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
>повторяющимися "ключевыми" значениями а это как?! И код, пожалуйста - скрипт для таблиц и запрос на удаление. Проще будет выяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 07:50 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
"ключевые" - это так: зависимая таблица не ключёванная - а "ключевые" значения - это поля, соответствующие составному ключу в главной таблице. Но после того, как я создал счётчик, я его заключевал - результат тот же. (PKey и FKey остались те же) Запрос такой - DELETE FROM ShippingOut WHERE Counter = '364' Триггер - CREATE TRIGGER trDelSO ON dbo.ShippingOut FOR DELETE AS begin update [Order] set [Order].WLoaded = (select SUM(ShippingOut.Loading) from ShippingOut, deleted where ShippingOut.NAcc = deleted.NAcc and ShippingOut.DAcc = deleted.DAcc and ShippingOut.NOrder = deleted.NOrder and ShippingOut.DOrder = deleted.DOrder) from [Order], deleted where [Order].NAcc = deleted.NAcc and [Order].DAcc = deleted.DAcc and [Order].NOrder = deleted.NOrder and [Order].DOrder = deleted.DOrder end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 08:07 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
Скрипт таблиц кинь. И желательно несколько инсертов к ним, на которых проявляется ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 08:10 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
Я наверное неправильно объяснил. Ошибка появляется при попытке удаления записи. А таблицы у меня создаются не скриптом, а в рукопашную (и связи тоже). В таблице [Order] составной ключ - NAcc as varchar,DAcc as datetime,NOrder as varchar,DOrder as datetime. В таблице [ShippingOut] те же самые поля, только ключ - Counter FK_ShippingOut_Order Связь по этим четырём полям. У таблицы [Order] - "один", у таблицы [ShippingOut] - "много". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 08:30 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
Вместо таблицы Deleted используйте подзапрос вида (select Distinct NAcc, DAcc, NOrder, DOrder from Deleted) тогда должно быть нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 09:53 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
Это в триггере в условии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 11:44 |
|
||
|
Ошибка при удалении
|
|||
|---|---|---|---|
|
#18+
В триггере update [Order] set [Order].WLoaded = (select SUM(ShippingOut.Loading) from ShippingOut, d where ShippingOut.NAcc = d.NAcc and ShippingOut.DAcc = d.DAcc and ShippingOut.NOrder = deleted.NOrder and ShippingOut.DOrder = d.DOrder) from [Order], (select Distinct NAcc, DAcc, NOrder, DOrder from Deleted) as d where [Order].NAcc = d.NAcc and [Order].DAcc = d.DAcc and [Order].NOrder = d.NOrder and [Order].DOrder = d.DOrder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1825468]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 401ms |

| 0 / 0 |
