Merhaba, Msql – T-SQL Stored Procedure nasıl kullanabileceğimizi örneklendirilerek anlatmaya çalışacağım. Eğer ilk defa tanışıyorsanız Stored Procedure Nedir Makalemi göz atabilirsiniz.
Bir tane MUSTERI adında tablo oluşturayım. Bir tanesi birincil anahtarı olan MusteriNo Sayısal veri tipi olan INT tanımlıyorum. Ad ve Soyad ise metin veri tipi nvarchar olarak tanımlıyorum.
CREATE TABLE MUSTERI (
MusteriNo INT PRIMARY KEY IDENTITY (1,1),
Ad NVARCHAR(50),
Soyad NVARCHAR(50)
)
Şimdi Musteri tablosuna her seferi INSERT Sorgusunu yazmak yerine şablonu hazırlayalım. Bundan sonra hızlıca insert işlemi yapabileyim.
Stored Procedure hazırlamak
CREATE PROCEDURE MusteriKayitEkle
@Ad NVARCHAR(50),
@Soyad NVARCHAR(50)
AS
BEGIN
INSERT INTO MUSTERI (Ad,Soyad) VALUES (@Ad,@Soyad)
END
İlk Sp oluşturduğumuza göre bunu nasıl kullanabileceğimizi bakalım.
exec MusteriKayitEkle @Ad='BT',@Soyad='Omer'
Şimdi kayıt eklendiğine göre tabloya bakalım
SELECT * FROM MUSTERI
Harika şimdi müşteriye selamlayalım.
CREATE PROCEDURE MusteriyiSelamla
@MusteriNo INT
AS
BEGIN
DECLARE @Ad NVARCHAR(50), @Soyad NVARCHAR(50)
SELECT @Ad=Ad , @Soyad=Soyad FROM MUSTERI WHERE MusteriNo=@MusteriNo
PRINT 'Merhaba '+@Ad+' '+@Soyad+' Btomer sayfama hoşgeldiniz.'
END
Şimdi işlem tipine göre güncelleme veya silme işlemi yapalım
CREATE PROCEDURE MusteriSilveyaGuncelle
@MusteriNo INT,
@Ad NVARCHAR(50) = '',
@Soyad NVARCHAR(50) = '',
@IslemTipi INT = 0 --Standart "0" olarak atamasını yapıyorum.
--0:Güncelle
--1:Sil
AS
BEGIN
IF @IslemTipi = 0
BEGIN
IF(@Ad ='' or @Soyad='')
BEGIN
PRINT 'Ad ve Soyad Boş olamaz!'
RETURN
END
UPDATE M SET Ad=@Ad,Soyad=@Soyad FROM MUSTERI M WHERE MusteriNo = @MusteriNo
PRINT 'Güncelleme yapıldı.'
END
ELSE IF @IslemTipi = 1
BEGIN
DELETE FROM MUSTERI WHERE MusteriNo=@MusteriNo
PRINT 'Musteri Kaydı silindi.'
END
ELSE
PRINT 'Yapılabilecek bir işlem bulunmuyor'
END
IF ELSE Konuyu pekiştirmek isterseniz IF ELSE Eğer-Değilse Kullanımı Teorik Anlatım Makelemi göz atabilirsiniz.
Bu kadar yazdığınız sorgular daima çalışması dileğimle…