【发布时间】:2012-02-07 20:10:12
【问题描述】:
如何在SELECT 语句中运行存储过程?
例如
SELECT
(<SQL CODE>) A,
(<SQL CODE>) B
我想用预定义的存储过程运行或替换 SQL CODE。那么如何在SELECT 语句中运行它呢?
有什么想法吗?
【问题讨论】:
标签: sql stored-procedures select
如何在SELECT 语句中运行存储过程?
例如
SELECT
(<SQL CODE>) A,
(<SQL CODE>) B
我想用预定义的存储过程运行或替换 SQL CODE。那么如何在SELECT 语句中运行它呢?
有什么想法吗?
【问题讨论】:
标签: sql stored-procedures select
我所知道的最接近的是insert ... exec,比如:
declare @t1 table (col1 int, col2 varchar(50))
insert @t1 exec ProcA
declare @t2 table (col1 int, col2 varchar(50))
insert @t2 exec ProcB
select t1.col1
, t1.col2
, t2.col1
, t2.col2
from @t1 t1
cross join
@t2 t2
表定义必须与存储过程的结果集完全相同。缺少列或稍有不同的定义会产生错误。
【讨论】: