0 / 0 / 0
Регистрация: 04.05.2017
Сообщений: 7

Вложенный запрос вернул больше одного значения

07.05.2019, 12:22. Показов 1477. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для таблицы создано несколько триггеров, триггер CheckNum работает только если он один для таблицы, a с любым другим триггером выдает ошибку "Вложенный запрос вернул больше одного значения. Это запрещено когда вложенный запрос следует после =, !=, <, <=, >,>= или используется в качестве выражения", без него все триггеры работают. Не могу понять как исправить
BEGIN
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ALTER TRIGGER [dbo].[CheckNum]    
ON  [dbo].[tbCheck]    
AFTER  INSERT,UPDATE 
AS
BEGIN
IF(SELECT inserted.NumberOfProduct FROM inserted) IS NULL     
BEGIN        
UPDATE c SET NumberOfProduct = 1       
FROM inserted i       INNER JOIN dbo.tbCheck c ON  i.CheckNumber = c.CheckNumber  
DECLARE @val INT
DECLARE @uni INT
SELECT @uni=UnitPrice FROM inserted SET @val=@uni 
UPDATE tbCheck SET ProductValue=@val  
END 
ELSE
BEGIN 
DECLARE @num INT  
SELECT @num=NumberOfProduct,@uni=UnitPrice
FROM inserted
SET @val=@num*@uni
UPDATE tbCheck SET ProductValue=@val
END
END
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2019, 12:22
Ответы с готовыми решениями:

Вложенный запрос вернул больше одного значения Это запрещено, когда вложенный запрос следует после =, !=, <
Здравствуйте,проблема вот в чем,при добавление записи в таблицу,первая запись добавляется,а при добавление второй выдает что...

Вложенный запрос вернул больше одного значения Это запрещено, когда вложенный запрос следует после =, !=, <, <
Здравствуйте,проблема вот в чем,при добавление записи в таблицу,первая запись добавляется,а при добавление второй выдает что...

Вложенный запрос вернул больше одного значения
Всем добрый день! Есть база данных туров на SQL. Есть хранимая процедура, которая вычисляет цену тура исходя из цен билетов и...

1
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
07.05.2019, 12:52
Цитата Сообщение от qw9 Посмотреть сообщение
IF(SELECT inserted.NumberOfProduct FROM inserted) IS NULL
Я могу одним INSERTом вставить в таблицу миллиард (!) записей!
И тогда в inserted будет миллиард записей!
Но вы спрашиваете сервер о миллиарде записей так, что он, бедняга, не может понять, о какой именно записи его спрашивают!

Для работы со множеством записей существуют, например, предикаты EXISTS(), NOT EXISTS(), IN()
Вот ими и надо пользоваться.

От себя могу посоветовать не определять в триггере скалярные переменные совсем.
Ибо надо работать с inserted и deleted сразу как с таблицами, содержащими сколько угодно записей.

Я, например,использую скалярные переменные, например,
для накопления какого-нибудь диагностического сообщения. И только.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2019, 12:52
Помогаю со студенческими работами здесь

Запрос Select T-sql - Вложенный запрос вернул больше одного значения
Нужно посчитать комиссию от сделки. DealShare(комиссия) - поле таблицы agents, supplies - предложения(риелторы клиентам) deals-...

При условии having count(*) = 1 вложенный запрос вернул больше одного значения
Запрос выполняется с ошибкой update TFF_OBSCURE_PP set SUM_PP_ALL = (select TFF_PP.SUM_PP from TFF_PP where...

Ошибка при внесении записи в базу данных (вложенный запрос вернул больше одного значения)
Когда вношу новую запись, возникает ошибка: Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует...

"Вложенный запрос вернул больше одного значения."Не получается удалить две похожих записи
создаю хранимую процедуру на удаление USE GO /****** Object: StoredProcedure . Script Date: 21.02.2016 19:27:32 ******/ SET...

Триггер который сопоставляет значение. Ошибка "Вложенный запрос вернул больше одного значения"
Здравствуйте. Помогите пожалуйста у меня такая проблема. Запускаю триггер который сопоставляет значение. И если значение не больше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru