SQL-Serverの場合、これには2つの一般的なアプローチがあります。 3番目のオプション避けるべき varchar
を渡すことです IN
を使用して動的SQLステートメントに連結します -これは明確なインジェクション攻撃対象領域です。
合理的なオプション:
-
varchar
を渡します UDFを使用して、区切り文字でデータを分割します(この質問のように )、おそらくコンマ、パイプ、タブなど。結果に結合します:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something
- table-valued-parameter を使用します (SQL2008)そして直接参加する(UDFを避ける)