Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol / 25 сообщений из 33, страница 1 из 2
14.11.2018, 10:41
    #39732852
by_by1ba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
Код: 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
14.11.2018, 10:56
    #39732867
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
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
14.11.2018, 10:58
    #39732869
by_by1ba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
Sergey Sizov,
Переводил, не могу в запросе разобраться, где ошибка (((
...
Рейтинг: 0 / 0
14.11.2018, 11:00
    #39732870
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
by_by1ba,

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

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

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

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

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

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

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

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

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

нету триггеров в обоих случаях
http://prntscr.com/li5ygt скрин
...
Рейтинг: 0 / 0
14.11.2018, 12:08
    #39732921
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
Код: 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
14.11.2018, 12:23
    #39732925
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
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
14.11.2018, 12:24
    #39732927
by_by1ba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
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
14.11.2018, 12:27
    #39732931
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
by_by1baiapпропущено...
Перепишет - и получит ошибку-то!

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

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


Не смешно
, я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушлаТак ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
Ищу...ищу...но пока безуспешно
...
Рейтинг: 0 / 0
14.11.2018, 13:18
    #39732963
Guf
Guf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
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
14.11.2018, 13:21
    #39732964
by_by1ba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
iapby_by1baпропущено...


Не смешно
, я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушлаТак ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
может тут
Код: sql
1.
2.
IF @@ERROR = 0
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId)	
...
Рейтинг: 0 / 0
14.11.2018, 13:23
    #39732966
by_by1ba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
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
14.11.2018, 13:29
    #39732968
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
Konst_One
Код: sql
1.
...WHERE Directory=(3) ...


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

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

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

Ещё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.
...
Рейтинг: 0 / 0
14.11.2018, 13:33
    #39732974
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol
alexeyvgЕщё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.Если профайлером поймать невозможно, например, из за огромного потока запросов, пишите в вашу таблицу ошибок не только текст ошибки (с номером и объектом), но и запрос, вызвавший ошибку.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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