MSSQL TABLE - VALUED FUNCTION & MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS & INLINE TABLE-VALUED FUNCTIONS

Hiç yorum yok
Merhaba Arkadaşlar ,


Bu bölümde Mssql Functions Kullanımının ikinci bölümü ile karşınızdayım .Bu noktada ele alacağımız kavramlar  MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS & INLINE TABLE-VALUED FUNCTIONS olacak. Peki ama bunlar ne neden kullanırız gibi sorulara yanıt arıyor olacağız.ve video anlatım içindede belirttiğim gibi yazmış olduğumuz bu functionsların bulundukları yerleri ve üzerinde yapılacak modifikasyon işlemleri için Create ,Alter ,Drop keywordlerinden yararlanabileceğiz

Eğer function Kullanımında yeni iseniz  linkden ilk video anlatımıma ve c# nasıl kullanıldığı kısmına bakabilirsiniz Scalar -Valued Functions .

Kullanılan Function Örneği

USE [KuzeyRuzgari]
GO
/****** Object:  UserDefinedFunction [dbo].[UrunleriGetirSanal]    Script Date: 10/07/2014 22:02:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create function [dbo].[UrunleriGetirSanal](@UrunID int)
returns @SanalTablo table
(ID int,Urunadi nvarchar(40),fiyat money)
as
begin
if @UrunID <0
begin
Insert Into @SanalTablo(ID,Urunadi,fiyat)
Select UrunID,UrunAdi,Fiyat from Urunler--Burda değerler tablo halinde dönecek
end
else if @UrunID>0
begin
Insert Into @SanalTablo (ID,Urunadi,fiyat)
Select UrunID,UrunAdi,Fiyat from Urunler where UrunID=@UrunID
end
else
begin
 Insert Into @SanalTablo (ID,Urunadi,fiyat)
Select 0,'Veri yok',10
end
return-- Sanal Tablomu Döner
end
--Kullanım
Select ID,Urunadi,fiyat from UrunleriGetirSanal(-1)


Video Anlatım :






















Başka bir örnekle devam edelim.Arama İşlemleri yapabileceğimiz bir örnek senaryo ile tablomuz içinde ki kolonlara atama işlemleri ile geriye tablo dönen bir function yazarak bu işlemleri gerçekleştirelim.Önce sorgumuz ve tablomuz gelsin

Create function fn_StokArama
(
@TipID int,
@StokBarkod nvarchar(30),
@StokAdi nvarchar(50),
@StokKodu nvarchar(20))
returns @SanalTablo table
(ID int,stokbarkod nvarchar(30),stokkodu nvarchar(20),stokadi nvarchar(50))
as
begin
    if(@TipID=1)
        begin
        Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokKodu like '%'+@StokKodu+'%'
        end
    else if(@TipID=2)
     begin
    Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokAdi like '%'+@StokAdi+'%'
      end
      else if(@TipID=3)
      begin
            Insert Into @SanalTablo (ID,stokbarkod,stokkodu,stokadi)    Select ID,StokBarkod,StokKodu,StokAdi  from tbl_Stoklar where StokBarkod like '%'+@StokBarkod+'%'
          end
          return
end

Select * from fn_StokArama(1,'','','2')

--Declare @StokKodu nvarchar(20)
--set @StokKodu
--Select ID,StokBarkod,StokKodu,StokAdi from tbl_Stoklar where StokKodu like '%'+@StokKodu+'%'

Şimdi Kullandığımız tbl_Stoklar tablomuzu görelim


















Şimdi ise elde edeceğimiz sonucu görelim









Umarım Faydalı olmuştur.

Hiç yorum yok :

Yorum Gönder

Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.