Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
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
14 ноя 18, 10:41    [21733855]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1525
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
Перевести и понять переведенное не пробовали?
14 ноя 18, 10:56    [21733878]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
Sergey Sizov,
Переводил, не могу в запросе разобраться, где ошибка (((
14 ноя 18, 10:58    [21733884]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
court
Member

Откуда:
Сообщений: 1985
by_by1ba,

нет у тебя тут subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression
14 ноя 18, 11:00    [21733886]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
invm
Member

Откуда: Москва
Сообщений: 9273
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.

ЗЫ: Весь показанный код - топтание на месте и блуждание в N соснах...
14 ноя 18, 11:01    [21733888]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Я тоже не вижу в приведённом скрипте ничего такого.
Относительно присвоения переменной значения SELECTом, возвращающим несколько записей,
в документации написано, что результат неоднозначный, переменной присваивается последнее из возвращённых значений (то есть, случайным образом).
Поэтому показан не тот запрос, который породил ошибку.

Вот если бы было так:
SET @itemGUID=(SELECT itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @cod)
то это другое дело
14 ноя 18, 11:05    [21733896]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
court,
Спасибо...хм мб дело в ХMLке которую передают
14 ноя 18, 11:05    [21733899]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
iap,
именно эта часть процедуры и обрабатывает данные которые поступают
14 ноя 18, 11:08    [21733903]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
Не совсем Вас понял, Вы предлагаете на такую конструкцию. исправить или эта конструкция могла бы породить ошибку?
iap
Я тоже не вижу в приведённом скрипте ничего такого.
Относительно присвоения переменной значения SELECTом, возвращающим несколько записей,
в документации написано, что результат неоднозначный, переменной присваивается последнее из возвращённых значений (то есть, случайным образом).
Поэтому показан не тот запрос, который породил ошибку.

Вот если бы было так:
SET @itemGUID=(SELECT itemguid FROM WMS_Congruence (nolock) WHERE Directory=(3) and directorycode = @cod)
то это другое дело
14 ноя 18, 11:12    [21733911]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1525
by_by1ba
court,
Спасибо...хм мб дело в ХMLке которую передают
Сервер сообщает о запросе, а не о данных.
И
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.
14 ноя 18, 11:13    [21733915]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
Sergey Sizov
by_by1ba
court,
Спасибо...хм мб дело в ХMLке которую передают
Сервер сообщает о запросе, а не о данных.
И
Оно еще и "говорит" в каком модуле ошибка. И модуль этот, скорее всего, триггер.


Спасибо, пока что хз в чём проблема не могу никак понять. Это весь текст ошибки Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. где оно "говорит" в каком модуле ошибка не понимаю((((
14 ноя 18, 11:44    [21733961]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
court
Member

Откуда:
Сообщений: 1985
by_by1ba,

триггер на INSERT таб. [dbo].[WMS_SubGroup] показывай
14 ноя 18, 11:46    [21733966]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
court
Member

Откуда:
Сообщений: 1985
court
by_by1ba,

триггер на INSERT таб. [dbo].[WMS_SubGroup] показывай
...там разные таб.
и тоже для [dbo].[WMS_Group]
14 ноя 18, 11:48    [21733970]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
court
court
by_by1ba,

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


нету триггеров в обоих случаях
http://prntscr.com/li5ygt скрин
14 ноя 18, 12:02    [21733994]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
...WHERE Directory=(3) ...


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

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

SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);
14 ноя 18, 12:08    [21734006]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Konst_One
...WHERE Directory=(3) ...



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

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

SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);
Перепишет - и получит ошибку-то!
Хотя, может, это как раз и неплохо будет...
14 ноя 18, 12:23    [21734018]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
iap
Konst_One
...WHERE Directory=(3) ...



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

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

SET @itemGUID= (SELECT TOP (1) itemguid FROM WMS_Congruence (nolock) WHERE Directory=4 and directorycode = @code);
Перепишет - и получит ошибку-то!
Хотя, может, это как раз и неплохо будет...


Не смешно , я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушла
14 ноя 18, 12:24    [21734020]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
by_by1ba
iap
пропущено...
Перепишет - и получит ошибку-то! Картинка с другого сайта.
Хотя, может, это как раз и неплохо будет...


Не смешно Картинка с другого сайта., я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушла
Так ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.
14 ноя 18, 12:27    [21734029]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
iap
by_by1ba
пропущено...


Не смешно Картинка с другого сайта., я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушла
Так ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.

Ищу...ищу...но пока безуспешно
14 ноя 18, 12:31    [21734034]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 641
by_by1ba
Ищу...ищу...но пока безуспешно

Вот ты странный тип, уже трижды сказали надо посмотреть ошибку целиком
+ пример

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


И в результате в ошибке все указано и модуль и даже номер строки
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.
14 ноя 18, 13:18    [21734096]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
iap
by_by1ba
пропущено...


Не смешно Картинка с другого сайта., я осваиваю еще только всё и пытаюсь разобраться....и да ошибка не ушла
Так ошибку получить лучше, чем молча неправильный результат.
Повторяю: ваша ошибка не в том скрипте, который здесь показали, а где-то в другом месте.

может тут
IF @@ERROR = 0
SET @ObjectType = (SELECT eqt_ID FROM IFC_ExchangeQueueType WHERE eqt_ClassID = @ClassId)	
14 ноя 18, 13:21    [21734101]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
by_by1ba
Member

Откуда:
Сообщений: 17
Guf
by_by1ba
Ищу...ищу...но пока безуспешно

Вот ты странный тип, уже трижды сказали надо посмотреть ошибку целиком
+ пример

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


И в результате в ошибке все указано и модуль и даже номер строки
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.



у меня ошибки пишется таблицу отдельно, и там я скинул полный текст ошибки, а при проверки скрипта ошибок нет
если я Вас правильно понял
14 ноя 18, 13:23    [21734103]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
Konst_One
...WHERE Directory=(3) ...

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

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

И покажите полную ошиибку, не вырезайте кусочек.
14 ноя 18, 13:29    [21734109]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
by_by1ba
у меня ошибки пишется таблицу отдельно, и там я скинул полный текст ошибки, а при проверки скрипта ошибок нет
Значит, не всё скидывается.

Ещё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.
14 ноя 18, 13:31    [21734114]     Ответить | Цитировать Сообщить модератору
 Re: Ругается: Subquery returned more than 1 value. This is not permitted when the subquery fol  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
alexeyvg
Ещё смотрите профайлеролм, что выполняется в коннекте при ошибке.
Потому что вы должны повторить ошибку в SSMS, иначе получается, что вы ищите не там.
Если профайлером поймать невозможно, например, из за огромного потока запросов, пишите в вашу таблицу ошибок не только текст ошибки (с номером и объектом), но и запрос, вызвавший ошибку.
14 ноя 18, 13:33    [21734117]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить