【发布时间】:2011-01-25 09:51:19
【问题描述】:
假设我有这样的查询:
SELECT X FROM Table WHERE Y = 'Z'
如何使用上述查询中的每个X 作为参数来执行存储过程?
更新
我已将 SP 更改为表值函数。因此,对于函数的每次调用,它都会返回一个表。我需要做的是将所有这些结果存储在一个临时表中,并让我的 SP 返回这个表。
解决方案
在@cyberkiwi 的帮助下,终于设法让它工作了。这是我的最终解决方案:
DECLARE @Fields TABLE (
Field int)
INSERT INTO @Fields (X) SELECT * FROM tvf_GetFields(@SomeIdentifier)
SELECT * FROM @Fields
CROSS APPLY dbo.tvf_DoSomethingWithEachField([@Fields].Field)
【问题讨论】:
-
有没有可能将SP转换成函数?或者,如果 SP 必须保留,将其内容移到一个函数中,然后从 SP 和这段代码中调用该函数?
-
@Daniel:我已将 SP 转换为函数,但仍然无法正常工作。
标签: sql sql-server-2005 stored-procedures