【发布时间】:2015-02-17 20:12:10
【问题描述】:
我在 SQL Server 2008 中工作。我有一个带有参数的存储过程,称为@test。这个参数是 varchar(255)。在这个存储过程中,我需要解析这个字符串,将每个值转换为一个字符串本身(会有可变数量的值),并构建一个列表以在 NOT IN 语句中使用。
例如,假设@test = 'a, b, c, d'。我需要将此参数发送到我的存储过程中。在我的存储过程中有一个使用 NOT IN 语句的 SELECT 查询。对于这个例子,我需要这个 NOT IN 语句来读取 NOT IN('a', 'b', 'c', 'd')。
我该如何做到这一点?或者,这是一种不好的做法吗?
【问题讨论】:
-
您肯定要注意 SQL 注入。看到这个答案stackoverflow.com/questions/2944511/…
-
在 SQL Server 2008 中考虑使用table-valued parameters
标签: sql-server