【发布时间】:2008-09-18 14:35:22
【问题描述】:
我们都知道预处理语句是抵御 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)
如果我在 VB.Net 中使用 SQL Server 2000 很重要
【问题讨论】:
-
一个 t-sql 标签也可能是合适的。
标签: vb.net sql-server-2008 tsql sql-injection language-features