SQL Server Default Constraint Kullanımı
Herkese merhaba,
Bu yazıda sizlere SQL Server’da Default Constraint kullanımından bahsedeceğim.
SQL Server’da Default Constraint’ler bir sütuna veri eklenmemesi durumunda otomatik olarak varsayılan bir değer eklenmesini sağlayan yapıdır. Konu hakkındaki örneği aşağıda görebilirsiniz.
--Tablo oluşturulması CREATE TABLE Kitaplar ( KitapID int, KitapAdi NVARCHAR(200), BasimYili int DEFAULT 1987 ) --Veri eklenmesi (Basim yılı kısmı boş geçildi.) INSERT INTO dbo.Kitaplar ( KitapID, KitapAdi ) VALUES ( 1, -- KitapID - int N'SQL Server Eğitimleri' -- KitapAdi - nvarchar(200) -- BasimYili - int ) --Kitapların listelenmesi SELECT * FROM dbo.Kitaplar
Burada yıl bilgisi girmediğimiz için default olarak bir değer atadı.
Daha önceden oluşturulmuş fakat default constraint eklenmemiş bir tabloya default constraint eklemek için ise aşağıdaki kod bloğunu inceleyelim.
--Tablo oluşturulması CREATE TABLE Kitaplar ( KitapID int, KitapAdi NVARCHAR(200), BasimYili int ) --Veri eklenmesi (Basim yılı kısmı boş geçildi.) INSERT INTO dbo.Kitaplar ( KitapID, KitapAdi ) VALUES ( 1, -- KitapID - int N'SQL Server Eğitimleri' -- KitapAdi - nvarchar(200) -- BasimYili - int ) --Kitapların listelenmesi (NULL olarak gözüktü.) SELECT * FROM dbo.Kitaplar --Constraint ekleme işlemi yapıyoruz. ALTER TABLE Kitaplar ADD CONSTRAINT DK_BasimYili DEFAULT 1987 FOR BasimYili --Veri ekleme işlemi INSERT INTO dbo.Kitaplar ( KitapID, KitapAdi ) VALUES ( 2, -- KitapID - int N'SQL Server Eğitimleri Kitabı (Yeni)' -- KitapAdi - nvarchar(200) -- BasimYili - int ) --Kitapların listelenmesi SELECT * FROM dbo.Kitaplar
İlk başta tablomuzda default constraint yoktu. Sonrasında tablomuza yukarıdaki gibi eklemiş olduk.
Peki var olan bir default constraint nasıl kaldırılır. Bu işlem ile ilgili kodu aşağıda görmektesiniz. Fakat burada dikkat edilmesi gereken bir kısım var o da default constraint oluştururken isim vermeniz gerekliliği.
--Tablo oluşturulması CREATE TABLE Kitaplar ( KitapID int, KitapAdi NVARCHAR(200), BasimYili INT CONSTRAINT DC_BasimYili default 1987 ) --Veri eklenmesi (Basim yılı kısmı boş geçildi.) INSERT INTO dbo.Kitaplar ( KitapID, KitapAdi ) VALUES ( 1, -- KitapID - int N'SQL Server Eğitimleri' -- KitapAdi - nvarchar(200) -- BasimYili - int ) --Kitapların listelenmesi SELECT * FROM dbo.Kitaplar --Drop edilmesi işlemi ALTER TABLE Kitaplar DROP CONSTRAINT DC_BasimYili INSERT INTO dbo.Kitaplar ( KitapID, KitapAdi ) VALUES ( 2, -- KitapID - int N'SQL Server Eğitimleri Yenisi' -- KitapAdi - nvarchar(200) -- BasimYili - int ) --Kitapların listelenmesi SELECT * FROM dbo.Kitaplar
Burada DC_BasimYili isimli default constraint bu şekilde tablomuzdan kaldırılmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.