DBCC CHECKCONSTRAINTS

Bu makalede DBCC CHECKCONSTRAINTS konusunu detaylı bir şekilde görmüş olacağız. DBCC CHECKCONSTRAINTS komutu, SQL Server’da tablo üzerindeki tüm kısıtlamaların (constraints) doğru bir şekilde uygulanıp uygulanmadığını kontrol etmek için kullanılır. Bu komut, veritabanı üzerinde her tür kısıtlamayı (örneğin CHECK, PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL vb.) denetler ve bu kısıtlamalara aykırı olan herhangi bir veri olup olmadığını raporlar.

Aşağıdaki komut aktif olan tüm constraint’ların tutarlılık testini yapmaktadır.

DBCC CHECKCONSTRAINTS (N'[Person].[Person]') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Aşağıdaki komut aktif pasif tüm constraint’ların tutarlılık testini yapmaktadır.

DBCC CHECKCONSTRAINTS (N'[Person].[Person]') WITH ALL_CONSTRAINTS,NO_INFOMSGS, ALL_ERRORMSGS;

Bu komut, belirtilen tablo için tüm kısıtlamaları denetler. Eğer tablo adı verilmezse, tüm veritabanındaki kısıtlamalar kontrol edilir.

Hangi tablonun kısıtlamalarının denetleneceğini belirler. Bu parametreyi belirtmezseniz, veritabanındaki tüm tabloların kısıtlamaları kontrol edilir.

DBCC CHECKCONSTRAINTS Kullanımına Örnek

Örneğin, aşağıda bir Employees tablosu olduğunu düşünelim ve bu tabloda bazı kısıtlamalar olsun. Bu kısıtlamalar arasında, çalışanların maaşlarının pozitif bir değer olması gerektiğini belirten bir CHECK kısıtlaması ve EmployeeID alanının PRIMARY KEY olduğu bir kısıtlama bulunuyor.

Bu örneğimize uygun bir tablo oluşturalım.

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    Salary DECIMAL(10, 2),
    CONSTRAINT CK_Salary CHECK (Salary > 0)  -- Maaş 0'dan büyük olmalı
);

Burada EmployeeID bir PRIMARY KEY kısıtlamasına sahip ve Salary için CHECK kısıtlaması uygulanmış ve maaşın sıfırdan büyük olması gerekmektedir.

DBCC CHECKCONSTRAINTS Komutunun Çalıştırılması

DBCC CHECKCONSTRAINTS (N'Employees');

Bu komut, Employees tablosundaki tüm kısıtlamaları kontrol eder. Eğer Salary sütununda sıfır veya negatif bir maaş değeri varsa, bu durumda bir hata mesajı dönecektir.

DBCC CHECKCONSTRAINTS Çıktısı

Eğer kısıtlamalar sağlanıyorsa, komut başarılı bir şekilde çalışır ve herhangi bir hata mesajı döndürmez.

Eğer kısıtlamalara aykırı veriler varsa, komut bu verilerle ilgili hata mesajları döndürür.

Örneğin:

Msg 547, Level 16, State 0, Line 1

The CHECK constraint ‘CK_Salary’ is violated.

Bu mesaj, Salary sütununda belirli bir satırın kısıtlamayı ihlal ettiğini gösterir.

Neden DBCC CHECKCONSTRAINTS Kullanılır?

Veritabanı üzerinde kısıtlamaların düzgün çalışıp çalışmadığını denetlemek için kullanılır. Eğer veritabanına elle müdahale etmiş veya dış araçlarla veri yüklemişseniz, bu komut veri bütünlüğünü sağlamak için kullanılabilir. Kısıtlamaların ihlal edilmesi durumunda hangi verilerin bu ihlalleri oluşturduğunu tespit etmenize yardımcı olur.

DBCC CHECKCONSTRAINTS komutu, SQL Server’da kısıtlamaların doğru şekilde uygulandığını ve veri bütünlüğünün sağlandığını garanti etmek için oldukça kullanışlıdır. Tablolarda yapılan veri manipülasyonları sonucu, kısıtlamaların ihlali durumunda bu komut kullanılarak sorunlar tespit edilebilir ve giderilebilir. Başka bir makalede görüşmek dileğiyle..

“Allah’ın, göklerde ve yerde bulunan şeyleri hizmetinize verdiğini, nimetlerini gizli ve açık olarak önünüze bolca serdiğini görmez misiniz? İnsanlardan öyleleri vardır ki bir bilgi, bir rehber ve aydınlatıcı bir kitap olmadan Allah hakkında tartışmaya kalkışırlar.”Lokman-20

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir