SQL: отсутствуют данные из набора - PullRequest
0 голосов
/ 30 мая 2018

У меня есть хранимая процедура, которая требует определенного набора значений (T_id в следующем коде) для правильного выполнения, все значения должны присутствовать в наборе (исходя из таблицы #temp).Эти значения поступают из многочисленных каналов, и во время выполнения (хранимой процедуры) некоторые из них могут отсутствовать.Я пытаюсь поместить немного кода на место, в результате чего, если все значения отсутствуют, то хранимая процедура не выполняется.Я указал: 1) таблицу для сравнения

 create table #test(T_id real)
 insert into #test (T_id)
 select id from dbo.mapping
 where id in('1', '2','3','4','5','6')

2) (бит, с которым я борюсь), сравнение с тем, что присутствует в приведенной выше таблице ... и избегание выполнения кода.примечание: assign_ID - это таблица, которая может содержать или не содержать все необходимые значения (из ленты).

IF NOT EXISTS (select T_id from #assign_ID except select T_id  from  #test) 
Exec [dbo].[storedprocedure]@rdate, '1,2,3,4,5,6,'
else 
print N'missing'

Я не уверен на 100%, что я правильно понял логику.Но нужен ли мне динамический SQL, поскольку решение о запуске принимается во время выполнения?Точно сказать не могу.Пожалуйста, любая помощь приветствуется.

1 Ответ

0 голосов
/ 30 мая 2018

Попробуйте изменить запрос, возможно, команда NOT EXISTS не работает с командой IF.Попробуйте использовать WHERE и выполнить этот блок.

...