2011-12-16 18 views
15

SQL Server saklı yordamım var; Depolanan prosedürden dönüş değerini almam gerekiyor. Bunu yapmanın doğru yolu bu mu?SQL Server Stored Prosedürü yakalama dönüş değeri T-SQL'de

declare valback varchar(30) 
    set valback = exec storeproc1 

Bu durumda, saklı yordamımdır.

+1

Bir değişken olduğunu belirtmek için '@ valback' kullanmanız gerekir. – JNK

+0

SP'niz almayı denediğiniz bir OUTPUT parametresine sahip mi, yoksa SP'niz başarılı olup olmadığını görmek için kontrol etmek istediğiniz bir tür ekleme, güncelleme veya silme işlemi gerçekleştiriyor mu? –

cevap

33

start uygun T-SQL sözdizimi kullanın:

declare @valback int; 
exec @valback = storeproc1; 

sadece dönüş Saklı yordam için izin verilen tür int'dur. Saklı yordamlar, return bildirimi aracılığıyla durumu döndürür.

ben bir şekilde gerçekten başka bir şey istediğiniz bir his var, yani:

declare @valback varchar(30); 
exec storedproc1 @valback OUTPUT; 

veya INSERT ... EXEC üzerinden ayarlanır prosedür sonucu yakalamak: prosedüründe bir OUTPUT parameter olması. Bakınız How to Share Data Between Stored Procedures.