Todos sabemos que las declaraciones preparadas son una de las mejores maneras de defenderse de los ataques de inyección SQL. ¿Cuál es la mejor manera de crear una declaración preparada con una cláusula "IN"? ¿Hay una manera fácil de hacer esto con una cantidad no especificada de valores? Tome la siguiente consulta, por ejemplo.¿Manejar los datos en una cláusula IN, con parámetros de SQL?
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (1,2,3)
Actualmente estoy utilizando un bucle sobre mis valores posibles para construir una cadena como.
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDVAL_1,@IDVAL_2,@IDVAL_3)
¿Es posible usar simplemente pasar una matriz como el valor del parámetro de búsqueda y usar una consulta de la siguiente manera?
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDArray)
En caso que es importante que estoy trabajando con SQL Server 2000, en VB.Net
agregar una etiqueta SQLServer – MotoWilliams
una etiqueta t-sql también podría ser adecuada. –