SQL: "true" zurückgeben, wenn eine Liste von Datensätzen vorhanden ist?

Ein alternativer Titel könnte sein: Auf Vorhandensein mehrerer Zeilen prüfen?

Mit einer Kombination aus SQL und C # möchte ich, dass eine Methode true zurückgibt, wenn alle Produkte in einer Liste in einer Tabelle vorhanden sind. Wenn dies alles in SQL möglich ist, wäre dies vorzuziehen. Ich habe eine Methode geschrieben, die zurückgibt, ob ein einzelnesproductID existiert mit der folgenden SQL:

SELECT productID FROM Products WHERE ProductID = @productID

Wenn dies eine Zeile zurückgibt, gibt die c # -Methode true zurück, andernfalls false.

Nun frage ich mich, ob ich eine Liste mit Produkt-IDs habe (keine große Liste wohlgemerkt, normalerweise unter 20). Wie kann ich eine Abfrage schreiben, die eine Zeile zurückgibt, wenn alle Produkt-IDs vorhanden sind, und keine Zeile, wenn eine oder mehrere Produkt-IDs nicht vorhanden sind?

(Maybe something involving "IN" like:
SELECT * FROM Products WHERE ProductID IN ('1', '10', '100', 'ABC'))

BEARBEITEN

Wie das Ergebnis ausgedrückt wird, ist mir nicht wichtig. Gibt an, ob die Abfrage ein @ zurückgi1 oder0, eine leere Ergebnismenge oder eine nicht leere, wahr oder falsch, spielt keine Rolle. Ich würde die Antwort vorziehen, die 1) einfach zu lesen und zu verstehen und 2) performant ist

Ich hatte vor, die Liste der Produkt-IDs mit der SQL zu verketten. Offensichtlich öffnet dies den Code für die SQL-Injection (die Produkt-IDs sind eigentlichvarchar. in diesem Fall ist die Chance gering, aber ich möchte diese Möglichkeit trotzdem vermeiden. Wenn es also einen Ausweg gibt, wäre das besser. Verwenden von SQL Server 2005.

Produkt-IDs sindvarchar

Antworten auf die Frage(26)

Ihre Antwort auf die Frage