Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行存储过程,就像一个;表「;用于选择运算符(MS SQL SERVER)_Sql_Tsql_Stored Procedures_Select - Fatal编程技术网

执行存储过程,就像一个;表「;用于选择运算符(MS SQL SERVER)

执行存储过程,就像一个;表「;用于选择运算符(MS SQL SERVER),sql,tsql,stored-procedures,select,Sql,Tsql,Stored Procedures,Select,是否可以执行存储过程 像是选择操作符(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, NomProduc

是否可以执行存储过程 像是
选择
操作符(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
不直接(或不将存储过程更改为表值函数)

但你可以这样做:

INSERT INTO SomeTempTableWithSchemaMatchingTheSproc (...)
EXEC MyStoredProcedure 

SELECT * FROM SomeTempTableWithSchemaMatchingTheSproc 

SQL Server 2005以后,您还可以使用一个表变量。

我想您的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

作为一个函数而不是存储过程,这会更好

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


select * from
dbo.TestTable(1)
这对我很有用:

CREATE VIEW dbo.vw_xxx
AS
  select * from openquery(YOURSERVERNAME, 'exec [sp_xxx] '''','''','''','''','''','''' ')

不可以,但您可以将这些结果插入表中(当然,如果您知道sp的结果数据集的列),问题:是否可以将其放入.NET的SQLCommand对象中?这行吗?