powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
33 сообщений из 33, показаны все 2 страниц
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732852
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
IF @ClassID = 224 and @level = 5 
BEGIN
	SET @code=(CAST(@RecId As varchar(20))) -- RecID + tableID записи сообщения
	SELECT @itemGUID=itemguid FROM WMS_Congruence (nolock) WHERE Directory=(4) and directorycode = @code 
	IF not exists (SELECT 1 FROM WMS_Congruence (nolock) WHERE Directory=(4) and directorycode = @code ) 
		BEGIN       
			INSERT INTO WMS_Congruence (directorycode,itemguid,Directory)    
			SELECT @code,NEWID(),4 
			SELECT @itemGUID=itemguid FROM WMS_Congruence (nolock) WHERE Directory=(4) and directorycode = @code     
		END  

	INSERT INTO [dbo].[WMS_SubGroup]
        ([ID_1CSubGroup]
        ,[Name_SubGroup]
        ,[Active]
		)
     VALUES
        (@itemGUID
        ,@Description
        ,1
		)		   
END
--Категория ОТК
IF @ClassID = (224) and @level = (4) 
BEGIN
	SET @code=(CAST(@RecId As varchar(20))) -- RecID + tableID записи сообщения
	SELECT @itemGUID=itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @code 
	IF not exists (SELECT 1 FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @code) 
		BEGIN       
			INSERT INTO WMS_Congruence (directorycode,itemguid,Directory)    
			SELECT @code,NEWID(),3 
			SELECT @itemGUID=itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @code      
		END  

	INSERT INTO [dbo].[WMS_Group]
		([ID_1CGroup]
		,[Name_Group]
		,[Active]
		)
	VALUES
		(@itemGUID
		,@Description
		,1
		)
END



Запускаю, говорит

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression
пытаюсь в ставить таблицу данные из XML
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732867
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baЗапускаю, говорит

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expressionПеревести и понять переведенное не пробовали?
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732869
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
Переводил, не могу в запросе разобраться, где ошибка (((
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732870
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1ba,

нет у тебя тут subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732871
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.

ЗЫ: Весь показанный код - топтание на месте и блуждание в N соснах...
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732875
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже не вижу в приведённом скрипте ничего такого.
Относительно присвоения переменной значения SELECTом, возвращающим несколько записей,
в документации написано, что результат неоднозначный , переменной присваивается последнее из возвращённых значений (то есть, случайным образом).
Поэтому показан не тот запрос, который породил ошибку.

Вот если бы было так:
Код: sql
1.
SET @itemGUID=(SELECT itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @cod)

то это другое дело
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732877
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
Спасибо...хм мб дело в ХMLке которую передают
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732880
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,
именно эта часть процедуры и обрабатывает данные которые поступают
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732883
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем Вас понял, Вы предлагаете на такую конструкцию. исправить или эта конструкция могла бы породить ошибку?
iapЯ тоже не вижу в приведённом скрипте ничего такого.
Относительно присвоения переменной значения SELECTом, возвращающим несколько записей,
в документации написано, что результат неоднозначный , переменной присваивается последнее из возвращённых значений (то есть, случайным образом).
Поэтому показан не тот запрос, который породил ошибку.

Вот если бы было так:
Код: sql
1.
SET @itemGUID=(SELECT itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @cod)

то это другое дело
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732885
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1bacourt,
Спасибо...хм мб дело в ХMLке которую передаютСервер сообщает о запросе, а не о данных.
И
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732901
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizovby_by1bacourt,
Спасибо...хм мб дело в ХMLке которую передаютСервер сообщает о запросе, а не о данных.
И
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.

Спасибо, пока что хз в чём проблема не могу никак понять. Это весь текст ошибки Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. где оно "говорит" в каком модуле ошибка не понимаю((((
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732903
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1ba,

триггер на INSERT таб. [dbo].[WMS_SubGroup] показывай
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732906
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtby_by1ba,

триггер на INSERT таб. [dbo].[WMS_SubGroup] показывай...там разные таб.
и тоже для [dbo].[WMS_Group]
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732915
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtcourtby_by1ba,

триггер на INSERT таб. [dbo].[WMS_SubGroup] показывай...там разные таб.
и тоже для [dbo].[WMS_Group]

нету триггеров в обоих случаях
http://prntscr.com/li5ygt скрин
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732921
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
...WHERE Directory=(3) ...



а что это за параметры такие?

может перепишите как то так:

Код: sql
1.
SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732925
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
Код: sql
1.
...WHERE Directory=(3) ...




а что это за параметры такие?

может перепишите как то так:

Код: sql
1.
SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);

Перепишет - и получит ошибку-то!
Хотя, может, это как раз и неплохо будет...
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732927
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapKonst_One
Код: sql
1.
...WHERE Directory=(3) ...




а что это за параметры такие?

может перепишите как то так:

Код: sql
1.
SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);

Перепишет - и получит ошибку-то!
Хотя, может, это как раз и неплохо будет...

Не смешно , я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушла
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732931
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baiapпропущено...
Перепишет - и получит ошибку-то!

Хотя, может, это как раз и неплохо будет...

Не смешно
, я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушлаТак ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732934
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapby_by1baпропущено...


Не смешно
, я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушлаТак ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
Ищу...ищу...но пока безуспешно
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732963
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baИщу...ищу...но пока безуспешно
Вот ты странный тип, уже трижды сказали надо посмотреть ошибку целиком
пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE [dbo].[MyProc]
AS 
BEGIN
    SELECT 1 WHERE 1 = (SELECT [name] FROM [sys].[objects])
END;
GO 
EXEC [dbo].[MyProc]
GO
DROP PROCEDURE [dbo].[MyProc]
GO



И в результате в ошибке все указано и модуль и даже номер строки
Код: plaintext
1.
2.
Msg 512, Level 16, State 1,  Procedure MyProc, Line 4 
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732964
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapby_by1baпропущено...


Не смешно
, я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушлаТак ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
может тут
Код: sql
1.
2.
IF @@ERROR = 0
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId)	
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732966
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gufby_by1baИщу...ищу...но пока безуспешно
Вот ты странный тип, уже трижды сказали надо посмотреть ошибку целиком
пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE [dbo].[MyProc]
AS 
BEGIN
    SELECT 1 WHERE 1 = (SELECT [name] FROM [sys].[objects])
END;
GO 
EXEC [dbo].[MyProc]
GO
DROP PROCEDURE [dbo].[MyProc]
GO



И в результате в ошибке все указано и модуль и даже номер строки
Код: plaintext
1.
2.
Msg 512, Level 16, State 1,  Procedure MyProc, Line 4 
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.



у меня ошибки пишется таблицу отдельно, и там я скинул полный текст ошибки, а при проверки скрипта ошибок нет
если я Вас правильно понял
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732968
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
Код: sql
1.
...WHERE Directory=(3) ...


а что это за параметры такие?Так можно.

by_by1baнету триггеров в обоих случаяхА в WMS_Congruence?

И покажите полную ошиибку, не вырезайте кусочек.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732971
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baу меня ошибки пишется таблицу отдельно, и там я скинул полный текст ошибки, а при проверки скрипта ошибок нетЗначит, не всё скидывается.

Ещё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732974
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЕщё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.Если профайлером поймать невозможно, например, из за огромного потока запросов, пишите в вашу таблицу ошибок не только текст ошибки (с номером и объектом), но и запрос, вызвавший ошибку.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732975
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
by_by1baнету триггеров в обоих случаяхА в WMS_Congruence?

И покажите полную ошиибку, не вырезайте кусочек.[/quot]

в WMS_Congruence тоже нету триггеров.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732977
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgby_by1baу меня ошибки пишется таблицу отдельно, и там я скинул полный текст ошибки, а при проверки скрипта ошибок нетЗначит, не всё скидывается.

Ещё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.
Ошибку я получаю когда отправляю данные на обработку процедурой.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732984
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgalexeyvgЕщё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.Если профайлером поймать невозможно, например, из за огромного потока запросов, пишите в вашу таблицу ошибок не только текст ошибки (с номером и объектом), но и запрос, вызвавший ошибку.
Вы вел номер строки на которую ругается, у меня там комментарий находиться
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732990
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baalexeyvgпропущено...
Если профайлером поймать невозможно, например, из за огромного потока запросов, пишите в вашу таблицу ошибок не только текст ошибки (с номером и объектом), но и запрос, вызвавший ошибку.
Вы вел номер строки на которую ругается, у меня там комментарий находитьсяСмотря откуда считать
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39732997
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
BEGIN
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId) --Находим по ClassID , id типа объекта WMS
END
	INSERT INTO [dbo].[IFC_ExchangeQueueImport]
		([eqi_TypeID]
        ,[eqi_ObjectID]
        ,[eqi_RequestDate]
        ,[eqi_ImportLED]
        ,[Eqi_1CLed]
        ,[Eqi_NumberPackage]
        ,[eqi_ErrorLED]
        ,[eqi_Priority]
        ,[eqi_MailLED]
        ,[eqi_PLLed])



не может сюда записать как я понял
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39733022
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
by_by1baiap,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
BEGIN
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId) --Находим по ClassID , id типа объекта WMS
END
	INSERT INTO [dbo].[IFC_ExchangeQueueImport]
		([eqi_TypeID]
        ,[eqi_ObjectID]
        ,[eqi_RequestDate]
        ,[eqi_ImportLED]
        ,[Eqi_1CLed]
        ,[Eqi_NumberPackage]
        ,[eqi_ErrorLED]
        ,[eqi_Priority]
        ,[eqi_MailLED]
        ,[eqi_PLLed])




не может сюда записать как я понялВ первом посте ведь другой скрипт, да?
Никакого SETа из скалярного запроса не было! А теперь появился?
Если SELECT в скобках возвращает 2 и более строки, то вот вам и ваша ошибка!

Приведённый скрипт - это часть процедуры? Тогда отсчёт строк начинается с первой строки этой процедуры,
неважно, комментарий там или CREATE PROCEDURE или что-то другое. Тупо считается количество символов переноса строки.
И этот номер передаётся в сообщении об ошибке.
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39733039
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapby_by1baiap,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
BEGIN
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId) --Находим по ClassID , id типа объекта WMS
END
	INSERT INTO [dbo].[IFC_ExchangeQueueImport]
		([eqi_TypeID]
        ,[eqi_ObjectID]
        ,[eqi_RequestDate]
        ,[eqi_ImportLED]
        ,[Eqi_1CLed]
        ,[Eqi_NumberPackage]
        ,[eqi_ErrorLED]
        ,[eqi_Priority]
        ,[eqi_MailLED]
        ,[eqi_PLLed])




не может сюда записать как я понялВ первом посте ведь другой скрипт, да?
Никакого SETа из скалярного запроса не было! А теперь появился?
Если SELECT в скобках возвращает 2 и более строки, то вот вам и ваша ошибка!

Приведённый скрипт - это часть процедуры? Тогда отсчёт строк начинается с первой строки этой процедуры,
неважно, комментарий там или CREATE PROCEDURE или что-то другое. Тупо считается количество символов переноса строки.
И этот номер передаётся в сообщении об ошибке.

Это было вторая часть и да она возвратила мне 2 значения..... ну я еще полный лоу скилл...только обучаюсь.....Спасибо всем огромное!!!
...
Рейтинг: 0 / 0
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
    #39733040
by_by1ba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема закрыта.
Всем спасибо!
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]