是否可以使用一个集合,例如(1,2,3,4,5),作为SQL Server 2008中Sproc,函数或视图的参数?
对于这个SLQ,我应该使用Sproc,function或View?
WITH Scores AS(
SELECT
ItemId, SUM(Score) AS Score
FROM [Presenta].[presenta].[LpivScores]
WHERE
// HERE I want (1, 2, 3, 4, 5) to be the inparameter, like @inParam
ListPropertyItemId IN (1, 2, 3, 4, 5)
GROUP BY
ItemId
)
-- I want this to be returned
SELECT
i.Id,
s.Score
FROM
Scores s,
Items i
WHERE
s.ItemId = i.Id
非常感谢任何帮助!
答案 0 :(得分:3)
您可能想看看Table Valued Parameters。
答案 1 :(得分:2)
请参阅:
在SQL Server 2008中,您可以使用table valued parameters。
答案 2 :(得分:1)
这里有几种技术来查看表值参数。
您可以继续使用逗号分隔值,但您需要创建一个函数来拆分逗号分隔值。 http://vyaskn.tripod.com/passing_arrays_to_stored_procedures.htm
其他方法是使用XML参数。 http://weblogs.asp.net/jgalloway/archive/2007/02/16/passing-lists-to-sql-server-2005-with-xml-parameters.aspx