将参数发送到SQL Server 2008中的存储过程

时间:2010-09-28 06:11:02

标签: sql-server stored-procedures

我有这个存储过程

Usp_temp
@temp nvarchar(50)

Where  city in (@temp)

我尝试发送一些像这样的参数

Usp_temp '1,3,5'

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

查看这些文章:Arrays and Lists in SQL Server 2005 and BeyondArrays and Lists in SQL Server 2008

他们讨论了将值列表传递给SP的所有合理方法。

答案 1 :(得分:1)

试着看看这篇文章: http://www.codeproject.com/KB/database/SPParameters.aspx

您应该可以使用文章中的这个示例来解决您的问题:

DECLARE @IDs varchar(100)
SELECT  @IDs = '429,446,552,1001, 332 , 471' 
  --Any IDs as an example

SELECT  Convert(Int, NullIf(SubString(',' + @IDs + ',' , ID , CharIndex(',' , ',' + @IDs + ',' , ID) - ID) , '')) AS IDList 
FROM    tblToolsStringParserCounter
WHERE   ID <= Len(',' + @IDs + ',') AND SubString(',' + @IDs + ',' , ID - 1, 1) = ',' 
AND     CharIndex(',' , ',' + @IDs + ',' , ID) - ID > 0