为SELECT运算符执行存储过程,如"表"(MS SQL SERVER)

Dev*_*per 21 sql t-sql select stored-procedures

是否可以为SELECT运算符(MS SQL SERVER)执行类似"表"的存储过程?

就像是

SELECT TotalSum FROM exec MyStoreProcedure '2011/11/01', '2011/11/01'  
Run Code Online (Sandbox Code Playgroud)

我的意思是以某种方式将它集成到SELECT运营商?

谢谢!


多谢你们!

我所做的解决方案基于你的答案:

declare @result table (f1 varchar(20),f2 varchar(20), CodProducto int, NomProducto varchar(1000), Costo decimal, Cantidat int, Total decimal)
INSERT INTO @result exec  MyStoreProcedure '20111201', '20111201'
select * from @result
Run Code Online (Sandbox Code Playgroud)

Die*_*ego 20

我猜你的proc会返回几列而你只想要一个,对吧?

小的解决方法是将proc的结果添加到表变量,然后从中进行选择

create proc proc1 as
select 1 as one, 2 as two

declare @result table (one int, two int)

insert into @result
exec proc1

select one from @result
Run Code Online (Sandbox Code Playgroud)


Vin*_*nie 5

这作为函数而不是存储过程会更好.

create function dbo.TestTable
(@var1 bit)
returns table
AS
RETURN
( select *
    from INFORMATION_SCHEMA.TABLES
    where @var1 = 1
);


select * from
dbo.TestTable(1)
Run Code Online (Sandbox Code Playgroud)