【发布时间】:2011-07-07 06:29:51
【问题描述】:
考虑表 SAMPLE:
id integer
name nvarchar(10)
有一个名为myproc 的存储过程。它只需要一个参数(即id)
给定一个名称作为参数,找到所有带有name = @nameparameter 的行并传递所有这些ID
给myproc
例如:
sample->
1 mark
2 mark
3 stu
41 mark
当mark 被传递时,1 ,2 and 41 将被单独传递给myproc。
即应该会发生以下情况:
execute myproc 1
execute myproc 2
execute myproc 41
我无法触摸myproc,也无法查看其内容。我只需要将值传递给它。
【问题讨论】:
-
虽然这个可以做到,但一般最好避免,通常是将存储的proc转换成UDF,或者内联扩展,这样就可以执行基于集合的操作.我们需要查看
myproc的内部结构,以告知在这种情况下哪种方法可行。在 SQL 中,您应该通常寻求基于集合的问题解决方案,而不是基于循环的解决方案。 -
在这里回答了类似的问题stackoverflow.com/questions/20662356/…
-
@Sandeep,这是一个较老的问题,我已经接受了解决方案
标签: sql sql-server-2008