T-SQL saklı yordam Seçilen değeri almak
T-SQL, bu izin verilir:
DECLARE @SelectedValue int
SELECT @SelectedValue = MyIntField FROM MyTable WHERE MyPrimaryKeyField = 1
Bu yüzden, mümkün SEÇİN ve bir şeylerin değerini almak için bir değişken var (skaler, açıkçası sağlanır).
Bir saklı yordam seçin aynı mantık koyarsam:
CREATE PROCEDURE GetMyInt
AS
SELECT MyIntField FROM MyTable WHERE MyPrimaryKeyField = 1
Bu saklı yordam, çıktısını alın ve bir değişkende şeyler yapabilir miyim?
Gibi bir şey
DECLARE @SelectedValue int
SELECT @SelectedValue = EXEC GetMyInt
(Sözdizimi üzerinde çalıştığım için izin verilmez biliyorum!)
CEVAP
kullanabileceğiniz üç yolu vardır: DÖNÜŞ değeri ve parametre ÇIKTI ve bir sonuç kümesi
AYRICA, eğer desen kullanırsanız dikkat edin: SELECT @Variable=column FROM table ...
eğer birden fazla satır sorgudan döndürülen varsa, @Değişken sadece son satırı sorgu tarafından döndürülen değeri içerir.
DEĞERİ DÖNDÜRÜR
sorgunuza beri döndürür int bir alan, en azından adını ne dayalı. bu hileyi kullanabilirsiniz:
CREATE PROCEDURE GetMyInt
( @Param int)
AS
DECLARE @ReturnValue int
SELECT @ReturnValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN @ReturnValue
GO
ve şimdi prosedür gibi çağrı:
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC @SelectedValue = GetMyInt @Param
PRINT @SelectedValue
bu sadece DÖNÜŞ tek int bir değer döndürür, çünkü değer vermez çalışır, ve boşluk sıfır dönüştürülür.
ÇIKIŞ PARAMETRESİ
bir çıkış parametresi kullanabilirsiniz:
CREATE PROCEDURE GetMyInt
( @Param int
,@OutValue int OUTPUT)
AS
SELECT @OutValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
ve şimdi prosedür gibi çağrı:
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC GetMyInt @Param, @SelectedValue OUTPUT
PRINT @SelectedValue
Çıkış parametreleri tek bir değer döndürebilir, ama herhangi bir veri türü olabilir
SONUÇ KÜMESİ sonuç için set yordam gibi yapın:
CREATE PROCEDURE GetMyInt
( @Param int)
AS
SELECT MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
bu gibi kullanın:
DECLARE @ResultSet table (SelectedValue int)
DECLARE @Param int
SET @Param=1
INSERT INTO @ResultSet (SelectedValue)
EXEC GetMyInt @Param
SELECT * FROM @ResultSet
sonuç kümeleri kaç satır ve herhangi bir veri türü pek çok sütun bulunabilir
C saklı yordam dönüş değeri almak#...
C parametresi bir saklı yordam çağrısı...
Nasıl Android bir RadioGroup seçilen d...
JQuery ile açılır bir listeden seçilen...
nasıl tam bir saklı yordam kodunu görü...