Sql server 2008 在SQLServer2008中,如何将同一列的多个参数传递给SP?

Sql server 2008 在SQLServer2008中,如何将同一列的多个参数传递给SP?,sql-server-2008,Sql Server 2008,我的桌子: id address tag 1 test class1 2 test1 class2 3 test3 class3 在SP中,我编写了如下select语句: Select address from mytable where tag IN (@SingleParameter) 将参数从UI传递到SP,如下所示: string SingleParameter = ""; SingleParameter = "class1,class2,cl

我的桌子:

id address tag
1  test   class1
2  test1  class2
3  test3  class3
在SP中,我编写了如下select语句:

 Select address from mytable where tag IN (@SingleParameter)
将参数从UI传递到SP,如下所示:

string SingleParameter = "";
            SingleParameter = "class1,class2,class3";
            comand.Parameters.AddWithValue("@SingleParameter",SingleParameter);
若表中有记录,则不会得到任何结果

发送单个值时,如

string SingleParameter = "";
            SingleParameter = "class1";
            comand.Parameters.AddWithValue("@SingleParameter",SingleParameter);
然后得到结果。 如何将多个字符串值传递给SP?
请告诉我……。

有几种方法可以做到这一点。此外,我相信在这方面已经进行了讨论。我建议您签出和链接

基本上,以下是我看到的选项:

  • 将查询转换为存储过程,并使用它将传入的参数字符串解析为实际值。然后可以运行查询。在so和网络上有两种实现
  • 使用表值参数-用于以表的形式定义多个变量的特殊参数
  • 使用临时表-用必要的标记填充它,然后与它进行连接。混乱的路要走
  • 将一个查询转换为n个查询
  • 填充查询字符串而不是参数化
  • 我建议使用第二个,尽管它可能无法移植到其他数据库(例如MySql没有表值参数的概念)。一定要看看这些文章——它们是一本很棒的读物。

    可能重复的