aba*_*hev 19 sql t-sql sql-server stored-procedures dml
如何组合执行存储过程并在常规SQL查询中使用其结果或参数?
例如,我想做类似以下的事情:
-- passing result of SELECT to SP
SELECT a, b FROM t
EXEC my_sp a, b
-- passing result of SP to INSERT
INSERT INTO t
EXEC my_sp a, b
Run Code Online (Sandbox Code Playgroud)
等等
KM.*_*KM. 25
不,你需要使用临时表
create table #results (col1 int, col2 varchar(5) ...)
INSERT INTO #results
EXEC YourProcedure @parma...
Run Code Online (Sandbox Code Playgroud)
然后你可以加入它
SELECT
*
FROM YourTable y
JOIN #results r ON ...
....
Run Code Online (Sandbox Code Playgroud)
如果你不知道过程中的列和数据类型,你可以使用这个优秀的答案:将存储过程的结果插入临时表
简而言之,它用于OPENROWSET将存储过程执行到即时创建的#temp表中,而无需命名并知道所有列的类型.
| 归档时间: |
|
| 查看次数: |
36234 次 |
| 最近记录: |