SQL Server Unique Constraint Kullanımı

Herkese merhaba,

Bu yazıda sizlere SQL Server’da Unique Constraint kullanımından bahsedeceğim.

SQL Server’da Unique Constraint’ler kısaca NULL değer alabilen primary key constraintler olarak adlandırılırlar. Bir tabloda birden fazla olabilirler. Bir alanda aynı değerden tekrar girilmesini önlerler. Konu hakkındaki örneği aşağıda görebilirsiniz.

--Tablo oluşturduk
CREATE TABLE Dusunenler 
(
DusunenID int,
DusunenAd NVARCHAR(100),
Dusunce nchar(20),
CONSTRAINT PK_ID PRIMARY KEY (DusunenID),
CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd))

--Bir adet düşünce ekledik.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 1, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'Birinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Bu kısmı eklemeyecektir. Çünkü Yavuz Selim'in bir tane düşüncesi vardır.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 2, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'İkinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Düşünceleri listeledik
SELECT * FROM dbo.Dusunenler

Burada Yavuz Selim’in iki adet düşünce girmesine müsade etmemiş olduk. Peki daha önceden oluşturulmuş bir tabloya Unique Constraint nasıl eklenir. Konu ile ilgili aşağıdaki örneği inceleyelim.

--Tablo oluşturduk
CREATE TABLE Dusunenler 
(
DusunenID int,
DusunenAd NVARCHAR(100),
Dusunce nchar(20),
CONSTRAINT PK_ID PRIMARY KEY (DusunenID))

--Unique Constraint Ekledik

ALTER TABLE Dusunenler
ADD CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd)

--Bir adet düşünce ekledik.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 1, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'Birinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Bu kısmı eklemeyecektir. Çünkü Yavuz Selim'in bir tane düşüncesi vardır.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 2, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'İkinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Düşünceleri listeledik
SELECT * FROM dbo.Dusunenler

Daha önce Unique Constraint olmayan bir tabloya Unique Constraint ekleme işlemini yaptık. Sıra geldi tabloda var olan bir Unique Cosntraint alanını drop etmeye. Bu işlemin nasıl yapıldığını aşağıda görmektesiniz.

--Tablo oluşturduk
CREATE TABLE Dusunenler 
(
DusunenID int,
DusunenAd NVARCHAR(100),
Dusunce nchar(20),
CONSTRAINT PK_ID PRIMARY KEY (DusunenID),
CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd))

--Unique Constraint drop etme işlemi

ALTER TABLE Dusunenler
DROP CONSTRAINT UK_DusunenAd;

--Bir adet düşünce ekledik.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 1, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'Birinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Bu kısmı eklemeyecektir. Unique Constraint kalktığı için bu insert işlemini de yapacaktır.
INSERT INTO dbo.Dusunenler
        ( DusunenID, DusunenAd, Dusunce )
VALUES  ( 2, -- DusunenID - int
          N'Yavuz Selim', -- DusunenAd - nvarchar(100)
          N'İkinci Düşüncem'  -- Dusunce - nchar(20)
          )

--Düşünceleri listeledik
SELECT * FROM dbo.Dusunenler

Burada drop ettikten sonra aynı kişi iki düşünce rahatlıkla girecektir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir