2009-03-10 14 views
2

SP içinde SP yürütüyorum. SP, 10 params diyor. Sadece 5 tanesiyle ilgileniyorum. Sadece bu 5 geçici tabloya nasıl eklerim.SQL Server - Seçici alanları geçici tabloya ekleme

var bugüne kadar kod: Yapamazsın

DECLARE @tmpUnion TABLE 
    (
    UnionCode VARCHAR(10), 
    UnionDate DATETIME, 
    UnionPosition VARCHAR(30), 
    UnionInitFees BIT, 
    UnionDues BIT 
) 

    --getDetails returns 10 params. I need only these 5 
    INSERT INTO @tmpUnion 
    (UnionCode, UnionDate, UnionPosition, UnionInitFees, UnionDues) 
    EXEC getDetails 
     @iUserId = @OriginalLoginId 

cevap

-1

. Tablo değişkeni, tam olarak waht yapısının döndürülmesiyle eşleşmelidir.

+0

Daha iyi bir cevap, "yapamazsınız" demek yerine yolu gösterecektir – NotMe

2

getDetails'in sonucunu, tüm dönüş değerlerini içeren bir tablovarına koyun, ardından ek tablonuzu eklediğiniz tablodan çıkarın.

Ayrıca saklı yordamlar arasında veri paylaşımı hakkında daha fazla bilgi için check out this site da olabilir.

+0

getDetails, 10 değer döndürdüğümde yalan söyledim. Aslında, 50'den fazla döndürür. Mümkünse tüm bu sütunlarla bir temp tablosu oluşturmanın ek yükünden kaçınmak istiyorum – DotnetDude

2

Kullanım openrowset şöyle: Artık

Select 
     * 
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes; 
     Integrated Security=SSPI','Execute yourdb..get_orders') 

kolayca resultset

Select 
employeeid,orderid,orderdate 
from 

OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes; 
     Integrated Security=SSPI','Execute yourdb..get_orders') 

where 
     orderdate>='19960101' and orderdate<'19970101' 

filtre Sen geçici bir tablo oluşturmak gerekmez ve ayrıca endişe etmenize gerek yok prosedürün yapısı.

Found here

DÜZENLEME: Nihai çözüm tartışmadan sonra yorumlardan taşındı.

+0

#TempTable global bir tablo yaratıyor mu? Bunu bildirdiğimde, sütunları ve veri türlerini belirtmem gerekmez. – DotnetDude

+0

Çift karma (##) genel tablo oluşturur. Sonuç kümesinin yapısını bilmeniz gerekir. Son zamanlarda bu konuda çalıştığımı düşünüyorum, kodu bulmak zorundayım. – WakeUpScreaming

+0

Elbette, saklı yordamlara erişiminiz olmadığını veya başka bir nedenden dolayı değiştiremeyeceğimi varsayarak. – WakeUpScreaming