Stored Procedure içinde Function Kullanımı

Muhammet Ali
7 Şubat 2017 Salı
3

Merhaba Arkadaşlar,

Bu makalede Stored procedure içinde function çağırıp kullanmak ile alakalı örnek yapacağız.Ne amaçla diye aklınıza soru gelebilir.Bilidiğiniz gibi veritabanı tarafında Table-valued Function ve Scalar-valued Function şeklinde 2 adet fonksiyon tipimiz var.Table function bize table döndürürken Scalar function bize tek sonuç döndürür. Son projemde Entity Framework ile çektiğim model içerisinde veitabanımda yeralan, asıl işi yapacak scalar functiona ulaşamadım.Araştırmalarım sonucu modeli text editor ile açıp değişiklikler yaparak normal function gibi kullanabileceğimi buldum.Bu yolu seçmektense Model içerisinden kolayca ulaşabileceğim stored procedure yazıp içinde Scalar function ımı çağırmak fikri geldi.Aşağıda örnek olarak inceleyebilirsiniz.

Function: Basit iki sayıyı çarpan parametre alan bir fonksiyon yazalım

Create FUNCTION [dbo].[OrnekFonksiyon]
(
       @degisken1 int,
       @degisken2 int
)
RETURNS int
AS
BEGIN
       
       DECLARE @Result int
       SELECT @Result = @degisken1 * @degisken2 ;
       RETURN @Result
END

Stored Procedure:Sp miz iki parametre alıyor.Bu parametreleride sorgumuzda cağırdığımız fonksiyona parametre olarak veriyoruz.

Create PROCEDURE [dbo].[SProcedureOrnegi]
(
@gelen1 int,
@gelen2 int
)
AS
begin
declare @setval int
select dbo.[OrnekFonksiyon](@gelen1 , @gelen2 )
end

Test:

DECLARE  @return_value int
EXEC  @return_value = [dbo].[SProcedureOrnegi]
       @FirstNumber = 5,
    @SecondNumber = 7

 

 

 

 



yorumlar
64x64

Vedat ÖZer

8 Ağustos 2017 Salı

Selamlar,

 

Bu işlemin tam dersi olabilirmi. Fonksiyonun içinde Procedure çalıştırma..

64x64

Emre

7 Eylül 2018 Cuma

Üstteki arkadaşın aynısı bende soracaktım:) Tam tersi yapılabiliyor mu

64x64

Muhammet Ali

13 Eylül 2018 Perşembe

Merhabalar,

Tam tersini kullanamıyoruz.Yani Fonksiyonun içinde procedure çalıştırılamıyor..

İyi çalışmalar

Yorum yaz