首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >执行存储过程,就像SELECT操作符的"table“(MS SQL SERVER)

执行存储过程,就像SELECT操作符的"table“(MS SQL SERVER)
EN

Stack Overflow用户
提问于 2012-03-29 20:19:14
回答 4查看 62.5K关注 0票数 22

对于SELECT operator (MS SQL SERVER),可以像“表”一样执行存储过程吗?

就像这样

代码语言:javascript
复制
SELECT TotalSum FROM exec MyStoreProcedure '2011/11/01', '2011/11/01'  

我的意思是以某种方式将其集成到SELECT操作符中?

谢谢!

谢谢你们!

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

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-29 20:26:53

我假设你的proc返回几列,而你只想要一列,对吧?

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

代码语言:javascript
复制
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
票数 22
EN

Stack Overflow用户

发布于 2012-03-29 20:29:05

这更适合作为函数而不是存储过程。

代码语言:javascript
复制
create function dbo.TestTable
(@var1 bit)
returns table
AS
RETURN
( select *
    from INFORMATION_SCHEMA.TABLES
    where @var1 = 1
);


select * from
dbo.TestTable(1)
票数 5
EN

Stack Overflow用户

发布于 2012-03-29 20:24:04

不直接(或不将存储过程更改为表值函数)。

但是你可以这样做:

代码语言:javascript
复制
INSERT INTO SomeTempTableWithSchemaMatchingTheSproc (...)
EXEC MyStoredProcedure 

SELECT * FROM SomeTempTableWithSchemaMatchingTheSproc 

SQL Server2005及更高版本中,还可以使用表变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9925143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档