Tablodaki Nullable Kolonlar İçin Default Constraint Oluşturmak

Tablolarımı oluştururken bazı kolonları null olabilecek şekilde, bazı kolonlarıda hiçbir zaman null olmayacak şekilde set ederiz. Null olabilecek şekilde oluşturduğumuz kolonların bazen null olarak gelirse yani yapılan insert ile bu kolona bir değer verilmediyse default olarak şu değeri bu kolona set et demek isteyebiliriz. Daha açıklayıcı olması açısından bir örnekle devam edelim.

 

Aşağıdaki gibi bir tablo oluşturalım. Bu tabloda Şehir isimleri ve bu şehirlere ait meşhur yiyeceklerin bilgisi tutulacak.

 

SehirIsmi kolonu aşağıda gördüğünüz gibi NOT NULL olarak tanımlanmış. Yani bu kolonda hiçbir zaman null değer olmayacak. MeshurYiyecek kolonu ise NULL olarak tanımlanmış. Yani bu kolon da null değerler olabilecek. Bunu böyle set ettik çünkü meşhur yiyeceği olmayan şehirler olabilir.

CREATE TABLE dbo.DefaultConstraintOrnek
(
ID int NULL,
SehirIsmi varchar(250) NOT NULL,
MeshurYiyecek varchar(250) NULL
)  ON [PRIMARY]

 

Tablomuza aşağıdaki gibi birkaç insert işlemi yapalım ve daha sonra sonuçları görmek için select edelim.

INSERT INTO [dbo].[DefaultConstraintOrnek]([ID],[SehirIsmi],[MeshurYiyecek])VALUES(1,'Gaziantep','Lahmacun')
INSERT INTO [dbo].[DefaultConstraintOrnek]([ID],[SehirIsmi],[MeshurYiyecek])VALUES(2,'Ankara',null)
GO
SELECT * FROM [dbo].[DefaultConstraintOrnek]

 

Gördüğünüz gibi Ankara için MeshurYiyecek kolonunu null olarak set ettik.

Aşağıdaki script yardımıyla null olarak set edilen kolonlara default constraint tanımlayarak meşhur yiyeceği olmayan şehirler için bu kolona default olarak Meşhur Yiyeceği Yok yazdıralım.

 

ALTER TABLE dbo.DefaultConstraintOrnek ADD CONSTRAINT
DF_DefaultConstraintOrnek_MeshurYiyecek DEFAULT 'Meşhur Yiyeceği Yok' FOR MeshurYiyecek

 

 

Default Constaint’i tanımladıktan sonra aşağıdaki gibi bir insert işlemi yapıp sonucu görmek için tekrar select edelim. Gördüğünüz gibi İstanbul için meşhur yiyecek kaydı yapmadık ve MeshurYiyecek kolonuna default olarak “Meşhur Yiyeceği Yok” ifadesi otomatik olarak set edildi.

 

INSERT INTO [dbo].[DefaultConstraintOrnek]([ID],[SehirIsmi])VALUES(3,'İstanbul')
GO
SELECT * FROM [dbo].[DefaultConstraintOrnek]

Loading

Leave Your Comment