对于SELECT
operator (MS SQL SERVER),可以像“表”一样执行存储过程吗?
就像这样
SELECT TotalSum FROM exec MyStoreProcedure '2011/11/01', '2011/11/01'
我的意思是以某种方式将其集成到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
发布于 2012-03-29 20:26:53
我假设你的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
发布于 2012-03-29 20:29:05
这更适合作为函数而不是存储过程。
create function dbo.TestTable
(@var1 bit)
returns table
AS
RETURN
( select *
from INFORMATION_SCHEMA.TABLES
where @var1 = 1
);
select * from
dbo.TestTable(1)
发布于 2012-03-29 20:24:04
不直接(或不将存储过程更改为表值函数)。
但是你可以这样做:
INSERT INTO SomeTempTableWithSchemaMatchingTheSproc (...)
EXEC MyStoredProcedure
SELECT * FROM SomeTempTableWithSchemaMatchingTheSproc
SQL Server2005及更高版本中,还可以使用表变量。
https://stackoverflow.com/questions/9925143
复制相似问题