Tablomuzu Oluşturalım
Üyelerin bulunduğu tablo (tblUyeler)CREATE Table tblUyeler ( uye_ID INT PRIMARY KEY IDENTITY, kullanici_adi nvarchar(50), sifre nvarchar(50), e_posta nvarchar(50), tarih datetime DEFAULT GETDATE(), durum bit DEFAULT 0 )
Oluşan tablomuzun ekran görüntüsünü paylaşalım.
Oluşan tblUyeler tablosu
Üye Ekleyen Stored Procedure
Şimdi ise üye kaydını gerçekleştiren Stored Procedure kodlarını yazalım. Üye kaydının gerçekleşebilmesi için kullanıcı adı ve e-posta adresi bir başka kullanıcıda olmamalıdır. Bu yüzden üye kaydı gerçekleşmeden önce bu kayıtların varlığı sorgulanmalıdır.
- Prosedür içerisinde aynı kullanıcı ad ve e-posta ile daha önceden kayıt var mı diye kontrol mekanizmasını da eklemeyi unutmayalım.
- Aynı kullanıcı adı ile bir daha kayıt olunmak istendiğinde SP "-2" değerini dönecek.
- Aynı e-posta ile bir daha kayıt olunmak istendiğinde SP "-1" değerini dönecek.
Eğer ki her şey sorunsuz bir şekilde ilerleyip üye kaydı başarılı bir şekilde gerçekleşirse SP son kaydın ID değerini dönecek.
Stored Procedure (Üye Ekleyen)
- Aynı kullanıcı adı ile bir daha kayıt olunmak istendiğinde SP "-2" değerini dönecek.
- Aynı e-posta ile bir daha kayıt olunmak istendiğinde SP "-1" değerini dönecek.
Eğer ki her şey sorunsuz bir şekilde ilerleyip üye kaydı başarılı bir şekilde gerçekleşirse SP son kaydın ID değerini dönecek.
CREATE PROCEDURE Sp_Uye_Ekle ( @kullanici_adi nvarchar(50), @sifre nvarchar(50), @e_posta nvarchar(50), @durum bit, @Sonuc int output ) AS DECLARE @kullanici_adi_var INT DECLARE @e_posta_var INT Select @kullanici_adi_var = COUNT(uye_ID) from tblUyeler WHERE kullanici_adi = @kullanici_adi Select @e_posta_var = COUNT(uye_ID) from tblUyeler WHERE e_posta = @e_posta IF @kullanici_adi_var > 0 BEGIN SET @Sonuc = -2 END ELSE IF @e_posta_var > 0 BEGIN SET @Sonuc = -1 END ELSE BEGIN INSERT INTO tblUyeler (kullanici_adi, sifre, e_posta, durum) values(@kullanici_adi, @sifre, @e_posta, @durum) SET @Sonuc = @@IDENTITY END SELECT @Sonuc
Üye Ekleyen Stored Procedure Çalıştıralım
Prosedür oluşturulduk. Bu prosedürü kullanarak birkaç tane üyeyi kayıt etmeye çalışalım.İlk Üyeyi Ekleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Ekle 'serkan', 'şifre1', 'serkan@mail.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Eklediğimiz Üyenin Bilgileri
İkinci Üyeyi Ekleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Ekle 'ahmet', 'şifre2', 'ahmet@mail.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Eklediğimiz Üyenin Bilgileri
Üçüncü Üyeyi Ekleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Ekle 'mehmet', 'şifre3', 'mehmet@deneme.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Eklediğimiz Üyenin Bilgileri
Aynı Kullanıcı Adına Sahip Birini Tekrar Eklemeye Çalışalım
Kullanıcı adı ahmet olan üyeyi yeniden eklemeye çalışalımAynı Kullanıcı Adına Sahip Kayıt Ekleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Ekle 'ahmet', 'şifre4', 'info@abc.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Görüldüğü gibi bize -2 değerini verdi yani "bu kullanıcı adı kayıtlı".
Mail adresi serkan@mail.com olan üyeyi yeniden eklemeye çalışalım
Aynı E-Posta Adresine Sahip Kayıt Ekleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Ekle 'veli', 'şifre5', 'serkan@mail.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Görüldüğü gibi bize -1 değerini verdi yani "bu mail adresi kayıtlı".
Üye Bilgilerini Güncelleyen SP
Güncellenecek üyenin kullanıcı adı kendisi hariç bir başka üyede varsa sonuç olarak bize -2 döncektir.Güncellenecek üyenin e-posta adresi kendisi hariç bir başka üyede varsa sonuç olarak bize -1 döncektir.
Eğer ki güncelleme başarılıysa sonuç olarak bize 1 döncektir.
Stored Procedure (Güncelleme)
CREATE PROCEDURE Sp_Uye_Guncelle ( @uye_ID INT, @kullanici_adi nvarchar(50), @sifre nvarchar(50), @e_posta nvarchar(50), @durum bit, @Sonuc int output ) AS DECLARE @kullanici_adi_var INT DECLARE @e_posta_var INT Select @kullanici_adi_var = COUNT(uye_ID) from tblUyeler WHERE uye_ID <> @uye_ID AND kullanici_adi = @kullanici_adi Select @e_posta_var = COUNT(uye_ID) from tblUyeler WHERE uye_ID <> @uye_ID AND e_posta = @e_posta IF @kullanici_adi_var > 0 BEGIN SET @Sonuc = -2 END ELSE IF @e_posta_var > 0 BEGIN SET @Sonuc = -1 END ELSE BEGIN UPDATE tblUyeler SET kullanici_adi = @kullanici_adi, sifre = @sifre, e_posta = @e_posta, durum = @durum WHERE uye_ID = @uye_ID SET @Sonuc = 1 END SELECT @Sonuc
2 numaralı üyeyi, yani kullanıcı adı ahmet olan üyenin bilgilerini güncelleyelim.
İkinci Üyenin Bilgilerini Güncelleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Guncelle 2, 'ahmet', 'yenişifre', 'ahmet@mail.com', 0, @Sonuc
Çalışan Yordamın Ekran Görüntüsü
Güncellenen tblUyeler tablosu
3 numaralı üyeyi, yani kullanıcı adı mehmet olan üyenin bilgilerini güncelleyelim. Diyelim ki bu kullanıcının kullanıcı adını serkan olarak belirleyelim
Üçüncü Üyenin Bilgilerini Güncelleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Guncelle 3, 'serkan', 'şifre3', 'mehmet@deneme.com', 0, @Sonuc
Çalışan Yordamın Ekran Görüntüsü
Görüldüğü gibi bize -2 değerini verdi yani "bu kullanıcı adı bir başka üyeye ait" böylece güncelleme yapılmamış oldu.
1 numaralı üyeyi, yani kullanıcı adı serkan olan üyenin bilgilerini güncelleyelim. Diyelim ki bu kullanıcının e-mail adresini mehmet@deneme.com olarak belirleyelim
Birinci Üyenin Bilgilerini Güncelleyelim
DECLARE @Sonuc INT EXEC Sp_Uye_Guncelle 1, 'serkan', 'şifre1', 'mehmet@deneme.com', 1, @SonucÇalışan Yordamın Ekran Görüntüsü
Görüldüğü gibi bize -1 değerini verdi yani "bu mail adresi bir başka üyeye ait" böylece güncelleme yapılmamış oldu.
Üyeyi Silen SP
CREATE PROCEDURE Sp_Uye_Sil ( @uye_ID INT, @Sonuc NVARCHAR(20) output ) AS DECLARE @Uye_Var INT Select @Uye_Var = COUNT(uye_ID) from tblUyeler WHERE uye_ID = @uye_ID IF @Uye_Var > 0 BEGIN DELETE FROM tblUyeler WHERE uye_ID = @uye_ID SET @Sonuc = 'üye silindi' END ELSE BEGIN SET @Sonuc = 'üye bulunamadı' END SELECT @Sonuc
5 numaralı üyeyi silmeyi deneyelim (olmayan bir kullanıcıyı)
Silme İşlemi
DECLARE @Sonuc NVARCHAR(20) EXEC Sp_Uye_Sil 5, @Sonuc
Çalışan Yordamın Ekran Görüntüsü
1 numaralı üyeyi, yani kullanıcı adı serkan olan üyeyi silmeyi deneyelim
Silme İşlemi
DECLARE @Sonuc NVARCHAR(20) EXEC Sp_Uye_Sil 1, @Sonuc
Çalışan Yordamın Ekran Görüntüsü
Güncellenen tblUyeler tablosu
Görüldüğü gibi 1 numaralı üye silindi.