Альтернативным заголовком может быть: Проверить наличие нескольких строк?
Используя комбинацию SQL и С#, я хочу, чтобы метод возвращал true, если все продукты в списке существуют в таблице. Если это можно сделать в SQL, что было бы предпочтительнее. Я написал метод, который возвращает, существует ли один productID
, используя следующий SQL:
SELECT productID FROM Products WHERE ProductID = @productID
Если это возвращает строку, то метод С# возвращает true, иначе false.
Теперь мне интересно, есть ли у меня список идентификаторов продуктов (а не огромный список, который вам нравится, обычно до 20 лет). Как я могу написать запрос, который вернет строку, если весь идентификатор продукта существует, и нет строки, если один или несколько идентификаторов продукта не существуют?
(Maybe something involving "IN" like:
SELECT * FROM Products WHERE ProductID IN ('1', '10', '100', 'ABC'))
EDIT:
Как результат выражен, для меня не важно. Если запрос возвращает 1
или 0
, пустой набор результатов или непустой, true или false, не имеет значения. Я бы предпочел ответ, который 1) легко читается и понимается, и 2) исполнитель
Я предполагал объединить список идентификаторов продукта с SQL. Очевидно, что это открывает код до SQL-инъекции (идентификатор продукта на самом деле varchar
. В этом случае вероятность тонкая, но все же хочет избежать этой возможности). Поэтому, если есть способ обойти это, было бы лучше. Использование SQL Server 2005.
Идентификатор продукта varchar