Untuk SQL-Server, ada dua pendekatan umum untuk ini. Opsi ketiga yang harus dihindari adalah meneruskan varchar
dan gabungkan menjadi pernyataan SQL dinamis dengan IN
- ini adalah permukaan serangan injeksi yang jelas.
Opsi yang masuk akal:
-
berikan
varchar
dan gunakan UDF untuk membagi data pada pembatas (seperti dalam pertanyaan ini ), mungkin koma, pipa, tab, dll. Gabung ke hasil:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something
- gunakan table-valued-parameter (SQL2008) dan bergabung secara langsung (hindari UDF)