DBCC CHECKCONSTRAINTS Nedir

DBCC CHECKCONSTRAINTS Nedir

DBCC CHECKCONSTRAINTS bir tabloda belirtilen bir constraint’in ya da bütün constraint’lerin tutarlılığını kontrol eder.

 

Peki Constraint Nedir?

 

Constraint’ler veritabanındaki veri için konulan kısıtlamalardır. Birkaç constraint çeşidi vardır. Bu konstraint’lerin her biri ile ilgili makaleyi aşağıda bulabilirsiniz.

 

NOT NULL

Tablo oluştururken kolonların sonuna konulan ve kolona gelen kaydın null olamayacak şekilde kısıtlayan constraint’dir.

UNIQUE CONSTRAINT

“Unique Constraint” isimli makalemde detaylarını bulabilirsiniz.

PRIMARY KEY

“Primary Key ve Foreign Key” isimli makalemde bulabilirsiniz.

FOREIGN KEY

“Primary Key ve Foreign Key” isimli makalemde bulabilirsiniz.

CHECK CONSTRAINT

“CHECK CONSTRAINT” isimli makalemde bulabilirsiniz.

DEFAULT CONSTRAINT

“Tablodaki Nullable Kolonlara Default Constraint Tanımlamak” isimli makalemde bulabilirsiniz.

 

 

Veritabanı üzerinde bir tutarsızlık oluştuğunda DBCC CHECK ile başlayan komutlardan bazılarını kullanarak veritabanındaki tutarsızlığı gidermemiz gerekebilir. Sorunu bu şekilde gidermek bazen constraint’ler le ilgili problem oluşturabilir. Bu yüzden tutarsızlığı giderme işleminden sonra aşağıdaki komut yardımıyla constraint’lerdeki tutarlılığı kontrol edebiliriz.

 

USE Test
GO
DBCC CHECKCONSTRAINTS (N'TestTable') WITH NO_INFOMSGS, ALL_ERRORMSGS;

 

Yukarıda çalıştırdığımız komut ile sadece aktif olan constraint’lerin tutarlılığı kontrol ediliyor. Script’e aşağıda gördüğünü gibi sss eklediğimizde aktif ve pasif bütün constraint’leri kontrol edecektir.

 

USE Test
GO
DBCC CHECKCONSTRAINTS (N'TestTable') WITH ALL_CONSTRAINTS,NO_INFOMSGS, ALL_ERRORMSGS;

 

Sadece bir tane constraint’in tutarlılığını kontrol etmek istiyorsak da aşağıdaki script yardımıyla bu işlemi gerçekleştirebiliriz. Aşağıdaki script’te ConstraintOrnek ismindeki constraint’in tutarlılığı kontrol ediliyor.

 

USE Test
GO
DBCC CHECKCONSTRAINTS (N'ConstraintOrnek') WITH NO_INFOMSGS, ALL_ERRORMSGS;

 

Loading

Bir yanıt yazın

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