sql-server - 将查询结果传递给存储过程

标签 sql-server stored-procedures

我有一个接受三个参数的存储过程。

是否可以使用查询作为输入来调用此存储过程?

例如,我有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/

相关文章:

sql - 使用列名创建表(中间有空格)

SQL根据二进制到十进制转换选择多行

sql-server - 针对 IN () 子句 COLLATE DATABASE_DEFAULT

sql-server - 好像我的存储过程返回整数

java - Oracle java存储过程性能

sql-server - 我想从每个类别的表中选择随机问题

sql-server - 如何调整sql查询中的小数位

mysql - mysql SP 中的 IF/ELSE 结构不起作用

stored-procedures - 带有 jdbc 和存储过程(函数)的 postgresql : ResultSet

sql-server - 在存储过程中的 'SET'关键字附近获取错误