For SQL-Server er der to almindelige tilgange til dette. Den tredje mulighed skal undgås er at indsætte en varchar
og sammenkæde den til en dynamisk SQL-sætning med IN
- dette er en klar injektionsangrebsoverflade.
Rimelige muligheder:
-
indgive en
varchar
og brug en UDF til at opdele dataene på et skilletegn (som i dette spørgsmål ), måske komma, pipe, tabulator osv. Deltag i resultatet:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something
- brug en table-valued-parameter (SQL2008) og deltag direkte (undgå UDF)