Ben bu şekilde veriyi döndüren bir saklı yordam Test_Sp
: Ben eklemek istediğinizSQL Server: parametrelere dayalı tabloya yerleştirin saklı yordam sonuçları
Id Name Age Address State Country
1 ManiS 25 aaaa bbb ccc
Bu saklı yordam veri 6 sütun iade ediyor
ama geçici bir tabloya sadece ilk 2 sütun ..
My geçici tablo değişkendir:
Declare @testTbl Table (RowId int identity, Name nvarchar(100), Age int);
INSERT INTO @testTbl(Name,Age) EXEC [Test_Sp] 23;
Select * from @testTbl;
Ama bu hatayı alıyorum:
Msg 50000, Level 16, State 0, Procedure Test_Sp, Line 16
Cannot use the ROLLBACK statement within an INSERT-EXEC statement.
Ben yaklaşık farkındayım Select * into
& Ben saklı yordam çıkış işe yarayacak demektir aynı sütunlu Geçici bir tablo ..
Sorum oluşturursanız: Bir geçici tabloya sadece iki sütun eklemek mümkündür parametrelere göre saklı yordam çıktısı değişkeni?
Neden sadece 6 sütun eklemek ve yaklaşık 4 umurumda değil görmezden dönerseniz? Veya yeni bir saklı yordam yazabilir misiniz? Veya saklı yordamı değiştirerek bazı durumlarda yalnızca iki sütun isteyebileceğinizi biliyorsunuz? –
Merhaba @AaronBertrand ... Bu sp'yi (Test_Sp) başka bir senaryo için kullandım, bu yüzden bu sp'ye yeni sütunlar ekleyeceğim, bu yüzden bu temp tablo değişken ekleme işlemine etki etmeyecek (çünkü bu geçici değişken ekleme farklı sp tarafından kullanılıyor) ... –
Farklı amaçlara hizmet etmek için farklı saklı yordamlara ihtiyacınız olduğu gibi geliyor. Saklı yordamın yazılması için yazılmadığı sürece, "hey, bu sefer iki sütun geri dönelim" demenin bir yolu yok, tamam mı? [OPENROWSET'e sahip hileler var] (http://stackoverflow.com/questions/653714/how-to-select-into-temp-table-from-stored-procedure) ama belki de [bunu okuyalım] gerekir. : //www.sommarskog.se/share_data.html). –