存储过程 - 使用IN子句sql的多个字符串参数

时间:2014-04-10 10:42:03

标签: asp.net sql stored-procedures in-clause

我想使用存储过程过滤行。以下是我的查询

   Create PROCEDURE [dbo].[Test]      
   @SearchTerm VARCHAR(100)        
   AS      
   BEGIN     

        Select * from master where name in (@SearchTerm)

   END

在代码背后,

    cmd.Parameters.AddWithValue("@SearchTerm", "peter")

当我使用上面的参数运行时,它运行正常。

但是当我这样过去的时候         cmd.Parameters.AddWithValue(“@ SearchTerm”,“'peter','rahul'”)

这次没有行提取。

我手动尝试然后它也无法正常工作。

    exec Test ''peter','rahul''

请帮助我,如何使用IN子句传递多个字符串?

1 个答案:

答案 0 :(得分:0)

一种方法是

Create PROCEDURE [dbo].[Test]      
   @SearchTerm VARCHAR(100)        
   AS      
    BEGIN     
      Select * from master where ','+@SearchTerm+',' like '%,'+name+',%'

您可以在http://www.sommarskog.se/arrays-in-sql-2008.html

找到更多方法