我有一个接受三个参数的存储过程。
是否可以使用查询作为输入来调用此存储过程?
例如,我有tableA
。
SELECT * FROM TABLEA
| A | B | C |
|---+---+---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
现在,有什么方法可以调用
EXEC sp_name (SELECT * FROM TABLEA)
以便为每一行执行存储过程?
我的理由是我有一个需要为多行调用的存储过程。我可以编写一个脚本来执行此操作,但想知道是否可以使用 TSQL 来执行此操作。
最佳答案
实现此目的的最佳方法是将第二个存储过程创建为用户定义的函数。然后就可以这样调用了:
SELECT *
FROM TableA
CROSS APPLY dbo.yourUserFunction(column1, column2, etc)
或者,可能有一种方法可以将两个存储过程合并为一组,但我必须看看您调用的第二个存储过程中包含什么。
关于sql-server - 将查询结果传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643289/