none
Otomatik değer atama RRS feed

  • Soru

  • Ben bir kayıt işlemi yapıyorum.Kayıt sırasında parola değerini girmeyince 123 atsın veritabanındaki parola alanına program.Bunu nasıl yaparım.

    Veritabanında parola alanının defaultValueofBinding değerine 123 yazdım ancak olmuyor.Boş bırakırsam boş kaydediyor.Bunu nasıl yapabilirim.

    16 Aralık 2011 Cuma 22:02

Yanıtlar

  • Merhaba,

    Uygulama tarafında SP'ne gelen @parola değişkeni boş bir string değer veya NULL olabilir. Insert cümlesi ile de bu gelen değer tablo'ya yazılıyor zaten.

    Insert cümleciğinde Parola kolonunu kullanmasaydın default değer çalışırdı. Ama sen explicit olarak NULL veya boş string olsa da bir değer bildirmişsin.

    Bence SP'ni aşağıdaki gibi değiştirebilirsin ve @parola değişkeninin değerini kontrol edebilirsin

    Create proc [dbo].[prCalisanYeniKaydet]
    (
       @tckimlikNo nchar(11),
       @ad nvarchar(50),
       @soyad nvarchar(50),
       @unvan nvarchar(100),
       @ePosta nvarchar(100),
       @cepTel nvarchar(50),
       @evTel nvarchar(50),
       @parola nvarchar(10),
       @calisanTipi smallint,
       @calisanNo int out
    )
    as
    if (@parola is null) or (@parola = '')
    	set @parola = '123'
    insert into Calisanlar(TCKimlikNo,Ad,Soyad,Unvan,EPosta,CepTel,EvTel,Parola,CalisanTipi)
     values(@tckimlikNo,@ad,@soyad,@unvan,@ePosta,@cepTel,@evTel,@parola,@calisanTipi)
     select @calisanNo=@@IDENTITY
    
    

     

     


    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials
    • Yanıt Olarak İşaretleyen pcci 20 Aralık 2011 Salı 15:59
    19 Aralık 2011 Pazartesi 07:09

Tüm Yanıtlar

  • Merhaba,

    dediginiz gibi olması gerekir.

    Bide aşğaıdaki kod ile default cons ekleyebilirmisiniz?

    Aşağpıdaki koddan tabloadı ve kolonadılaırnı değiştirilp kulanabilrisiniz.

    ALTER TABLE TabloAdı
                ADD CONSTRAINT DF_TAblo_kolonAdi
                DEFAULT '123' FOR Kolonadi
    


    17 Aralık 2011 Cumartesi 09:49
  • alter TABLE Calisanlar
                ADD CONSTRAINT DF_Calisanlar_Parola
                DEFAULT '123' FOR Parola    
    kodu bu şekilde düzenledim ama kod da hata var
    17 Aralık 2011 Cumartesi 16:17
  • hatayı paylaşabilir msiin? ben aşağıdaki gibi bir tablo olusturup denedim.

     

    CREATE TABLE Calisanlar(id INT,ad VARCHAR(100),parola VARCHAR(100))
    
    alter TABLE Calisanlar
                ADD CONSTRAINT DF_Calisanlar_Parola
                DEFAULT '123' FOR Parola 


    18 Aralık 2011 Pazar 19:40
  • Evet şimdi oldu. Önceden ben kolon özelliklerinden belirlemiştim bu değeri.Ordan kaldırıp kod ile yapınca kod çalıştı.Ancak gene de parola değişkenini girmdiğim zaaman otomatik olarak 123 değerini parola kolonuna girmiyor.Nerde sıkıntı olabilir?
    18 Aralık 2011 Pazar 20:14
  • insert cümlenizi paylaşabilir msiniz?
    19 Aralık 2011 Pazartesi 06:25
  • ALTER proc [dbo].[prCalisanYeniKaydet]
    (
       @tckimlikNo nchar(11),
       @ad nvarchar(50),
       @soyad nvarchar(50),
       @unvan nvarchar(100),
       @ePosta nvarchar(100),
       @cepTel nvarchar(50),
       @evTel nvarchar(50),
       @parola nvarchar(10),
       @calisanTipi smallint,
       @calisanNo int out
    )
    as
    insert into Calisanlar(TCKimlikNo,Ad,Soyad,Unvan,EPosta,CepTel,EvTel,Parola,CalisanTipi)
     values(@tckimlikNo,@ad,@soyad,@unvan,@ePosta,@cepTel,@evTel,@parola,@calisanTipi)
     select @calisanNo=@@IDENTITY
    19 Aralık 2011 Pazartesi 06:54
  • Merhaba,

    Uygulama tarafında SP'ne gelen @parola değişkeni boş bir string değer veya NULL olabilir. Insert cümlesi ile de bu gelen değer tablo'ya yazılıyor zaten.

    Insert cümleciğinde Parola kolonunu kullanmasaydın default değer çalışırdı. Ama sen explicit olarak NULL veya boş string olsa da bir değer bildirmişsin.

    Bence SP'ni aşağıdaki gibi değiştirebilirsin ve @parola değişkeninin değerini kontrol edebilirsin

    Create proc [dbo].[prCalisanYeniKaydet]
    (
       @tckimlikNo nchar(11),
       @ad nvarchar(50),
       @soyad nvarchar(50),
       @unvan nvarchar(100),
       @ePosta nvarchar(100),
       @cepTel nvarchar(50),
       @evTel nvarchar(50),
       @parola nvarchar(10),
       @calisanTipi smallint,
       @calisanNo int out
    )
    as
    if (@parola is null) or (@parola = '')
    	set @parola = '123'
    insert into Calisanlar(TCKimlikNo,Ad,Soyad,Unvan,EPosta,CepTel,EvTel,Parola,CalisanTipi)
     values(@tckimlikNo,@ad,@soyad,@unvan,@ePosta,@cepTel,@evTel,@parola,@calisanTipi)
     select @calisanNo=@@IDENTITY
    
    

     

     


    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials
    • Yanıt Olarak İşaretleyen pcci 20 Aralık 2011 Salı 15:59
    19 Aralık 2011 Pazartesi 07:09
  • İşte aradığım çözüm :) Çok sağolun...
    20 Aralık 2011 Salı 15:59