2012-03-29 6 views
18

SELECT演算子(MS SQL SERVER)の「テーブル」のようにストア・プロシージャ を実行できますか?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, NomProducto varchar(1000), Costo decimal, Cantidat int, Total decimal) 
INSERT INTO @result exec MyStoreProcedure '20111201', '20111201' 
select * from @result 
+1

いや、しかし(あなたのSPの結果データセットの列を知っていればもちろん、)あなたがテーブルの上に – Lamak

答えて

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 
+0

質問それらの結果を挿入することができます。ですがそれを.NETのSQLCommandオブジェクトに入れることは可能ですか?それはうまくいくのだろうか? –

2

を(またはテーブル値関数であることをストアドプロシージャを変更することなく):

私がやった溶液は、あなたの回答に基づいています。

しかし、あなたはこれを行うことができます:

INSERT INTO SomeTempTableWithSchemaMatchingTheSproc (...) 
EXEC MyStoredProcedure 

SELECT * FROM SomeTempTableWithSchemaMatchingTheSproc 

SQL Server 2005の以降、あなたはまた、テーブル変数を使用することができます。

5

を選択することです。

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


select * from 
dbo.TestTable(1) 
1

これは私の作品:

CREATE VIEW dbo.vw_xxx 
AS 
    select * from openquery(YOURSERVERNAME, 'exec [sp_xxx] '''','''','''','''','''','''' ') 
関連する問題