За SQL-Server има два общи подхода за това. Третият вариант, койтотрябва да се избягва е да се предаде varchar
и го свържете в динамичен SQL оператор с IN
- това е ясна повърхност за атака на инжектиране.
Разумни опции:
-
подайте
varchar
и използвайте UDF, за да разделите данните на разделител (като в този въпрос ), може би запетая, тръба, табулатор и т.н. Присъединете се към резултата:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something
- използвайте table-valued-parameter (SQL2008) и се присъединете директно (избягвайте UDF)