MSSQL TABLE - VALUED FUNCTION & MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS & INLINE TABLE-VALUED FUNCTIONS
Sinan Arslan
12:00
INLINE TABLE-VALUED FUNCTIONS
,
MSSQL Functions Kullanımı
,
MULTILINE-STATEMENT TABLE-VALUED FUNCTIONS
,
Scalar -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.
Kaydol:
Kayıt Yorumları
(
Atom
)
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.