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.

1.187 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!