Tam Versiyonu Görüntüle: Sql Yardım

Essen
24.01.2008, 14:21
Merhaba Arkadaşlar Triggerla pek ilgilenmedim Bu konu triggerlamı ilgili onuda bilmiyorum ama son bir haftadır kısır döngüye girdim yardım edebilrmisiniz??

sql e kullanici girişi yapıyorum eger email adresi kayıtlı ise -1 hata oluştu ise 0


>0 buyuk deger döndüyse kullanıcı kaydı gerçekleşti durumunu incelemem gerekiyo

Benim yapmış olduğum şablon ise

ALTER PROCEDURE [dbo].[sKullaniciKayit]
(
@isim nvarchar(100),
     @soyIsim nvarchar(100),
     @sehirID int,
     @ilceID int,
     @email nvarchar(100),
     @sifre nvarchar(100),
     @ulkeID int,
     @roleID int,
     @dogumTarihi datetime,
     @cinsiyet nchar(1),
     @ilgiAlanlari varchar(50),
     @sonGirisIP char(50),
     @uyelikTarihi datetime
)
AS
DECLARE @temp int

     BEGIN TRY
          -- Bu email daha önce kullanildi mi ?
          SELECT @temp = COUNT FROM [dbo].[Kullanici]
          WHERE [Email] = @email

          IF @temp > 0
          -- bu email daha önce kullanilmis
          BEGIN
               SELECT -1 AS [KullaniciID]
          END
          ELSE
          -- hersey tamam, kayit yap
          BEGIN
               INSERT Kullanici
                     
(Isim, SoyIsim, SehirID, IlceID, Email, Sifre, UlkeID, RoleID, DogumTarihi, Cinsiyet, IlgiAlanlari, SonGirisIP, UyelikTarihi)
VALUES     (@Isim,@SoyIsim,@SehirID,@IlceID,@Email,@Sifre,@UlkeID,@RoleID,@DogumTarihi,@Cinsiyet,@IlgiAlanlari,@SonGirisIP,@UyelikTarihi)


teşekkür ederim

Gürkan Alkan
17.05.2008, 16:33
Öncelikle bu trigger değil, stored procedure.Yani şu an baştan sona yazamayacağım ancak begin try demişsiniz, o zaman end try da demelisiniz. Ayrıca begin catch ve end catch de olmalı. insert INTO kullanıcı da olacak orası. Bunları göz önüne alarak bir daha yaparsanız sanırım çözersiniz. Ayrıca konuyu stored procedure diye aratırsanız inanıyorum ki daha iyi anlarsınız. İyi çalışmalar dilerim.