Für SQL-Server gibt es hierfür zwei gängige Ansätze. Die dritte Option, die zu vermeiden ist ist ein varchar zu übergeben und mit IN zu einer dynamischen SQL-Anweisung verketten - Dies ist eine klare Injektionsangriffsfläche.
Vernünftige Optionen:
-
übergeben Sie ein
varcharund verwenden Sie ein UDF, um die Daten auf ein Trennzeichen aufzuteilen (wie in dieser Frage ), vielleicht Komma, senkrechter Strich, Tabulator usw. Mit dem Ergebnis verbinden:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something - Verwenden Sie einen Tabellenwert-Parameter (SQL2008) und direkt beitreten (vermeiden Sie die UDF)