Мы все знаем, что подготовленные заявления являются одним из лучших способов защиты от атак SQL-инъекций. Каков наилучший способ создания подготовленного оператора с предложением "IN". Есть ли простой способ сделать это с неопределенным количеством значений? Возьмем следующий запрос, например.
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (1,2,3)
В настоящее время я использую цикл над моими возможными значениями для создания строки, такой как.
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDVAL_1,@IDVAL_2,@IDVAL_3)
Можно ли просто передать массив как значение параметра запроса и использовать запрос следующим образом?
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDArray)
В случае, если это важно, я работаю с SQL Server 2000, в VB.Net