执行存储过程,就像一个;表「;用于选择运算符(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对象中?这行吗?