2012-03-29 25 views
18

için bir "tablo" gibi depo yordamı yürütme depo prosedürü SELECT işleci (MS SQL SERVER) için bir "tablo" gibi yürütmek mümkün mü?SELECT operatörü (MS SQL SERVER)

SELECT TotalSum FROM exec MyStoreProcedure '2011/11/01', '2011/11/01' 

ben bir şekilde demek SELECT operatör entegre bir şey?

Teşekkür ederiz!


Thanks guys! Doğrudan değil

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

ancak (eğer sp sonucu veri kümesi sütunları biliyorsanız tabii ki,) bir masada – Lamak

cevap

20

Proc'unuzun birkaç sütun döndürdüğünü ve yalnızca bir tane istediğini varsaydım, değil mi?

küçük geçici çözüm bir tablo değişkeni proc sonucunu eklemek ve

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

Question bu sonuçları ekleyebilirsiniz:

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

2

(veya tablo değerli işlev olarak saklı yordam değiştirmeden):

ne yaptım çözüm cevaplar dayanmaktadır.

Ama bu yapabilirdi:

INSERT INTO SomeTempTableWithSchemaMatchingTheSproc (...) 
EXEC MyStoredProcedure 

SELECT * FROM SomeTempTableWithSchemaMatchingTheSproc 

SQL Server 2005 sonrası, ayrıca bir tablo değişkeni kullanabilirsiniz.

5

Bu bir fonksiyonu yerine saklı yordam olarak daha iyi olurdu den sonra seçmektir. Hayır

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

Bu

benim için çalışıyor mi .NET'in SQLCommand nesnesine yerleştirmek mümkün mü? Çalışacak mı?