我有这个存储过程
Usp_temp
@temp nvarchar(50)
Where city in (@temp)
我尝试发送一些像这样的参数
Usp_temp '1,3,5'
这样做的正确方法是什么?
答案 0 :(得分:2)
查看这些文章:Arrays and Lists in SQL Server 2005 and Beyond,Arrays 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