DBCC CHECKCONSTRAINTS Transact-SQL)
Denetler bütünlük belirtilen sınırlama veya belirtilen bir tablo geçerli veritabanındaki tüm kısıtlamalar.
DBCC CHECKCONSTRAINTS
[
(
table_name | table_id | constraint_name | constraint_id
)
]
[ WITH
[ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]
[ , ] [ NO_INFOMSGS ]
]
Bağımsız değişkenler
table_name | table_id | constraint_name | constraint_id
Tablo veya denetlenecek kısıtlama belirtilir.Ne zaman table_name veya table_id Belirtilen tüm kısıtlamalar, etkin tablo denetlenir. Ne zaman constraint_name veya constraint_id olduğundan, belirtilen Bu kısıtlama yalnızca denetlenir. Bir tablo tanıtıcısı, kendisi de bir kısıtlama tanımlayıcısı belirtilirse, geçerli veritabanındaki tüm tablolarda yer alan tüm etkin kısıtlamalar denetlenir.Bir kısıtlama adı benzersiz olarak tanımlayan tablo ait olduğu.Daha fazla bilgi için bkz:Tanımlayıcılar.
İLE
Seçeneklerin belirtilmesine olanak sağlar.all_constraints
Tüm etkin ve tablo adı belirtilmedi veya tüm tabloları işaretli ise; aksi halde, yalnızca etkin kısıtlamayı denetler tablo kısıtlamaları devre dışı denetler.Bir kısıtlama adı belirtildiğinde ALL_CONSTRAINTS hiçbir etkisi olmaz.all_errormsgs
Içinde kısıtlamaları ihlal eden tüm satırları döndürür tablo kontrol edilir.Ilk 200 satırları varsayılandır.no_infomsgs
Tüm bilgi iletileri bastırır.
Remarks
DBCC CHECKCONSTRAINTS yapıları ve tüm yabancı anahtar kısıtlamaları ve tablo CHECK kısıtlamalar için bir sorgu yürütür.
Örneğin, bir yabancı anahtar aşağıdaki biçimde sorgudur:
SELECT <columns>
FROM <table_being_checked> LEFT JOIN <referenced_table>
ON <table_being_checked.fkey1> = <referenced_table.pkey1>
AND <table_being_checked.fkey2> = <referenced_table.pkey2>
WHERE <table_being_checked.fkey1> IS NOT NULL
AND <referenced_table.pkey1> IS NULL
AND <table_being_checked.fkey2> IS NOT NULL
AND <referenced_table.pkey2> IS NULL
Sorgu verilerini bir temp depolanan tablo.Tüm istenilen tablolar veya kısıtlamaları denetledikten, sonuç kümesi verir.
DBCC CHECKCONSTRAINTS yabancı anahtar CHECK kısıtlamaları bütünlüğünü denetler, ancak disk üzerindeki veri yapılarının tablonun bütünlük denetimi yapmaz.Bu veri yapısını denetimler kullanılarak gerçekleştirilebilir. dbcc checkdb and dbcc checktable.
Sonuç Kümeleri
DBCC CHECKCONSTRAINTS aşağıdaki sütunlar içeren satır kümesi kümesi döndürür.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
Tablo adı |
varchar |
Tablonun adı. |
Kısıtlama adı |
varchar |
Kısıtlamayı ihlal adı. |
burada |
varchar |
Satır veya satırları kısıtlamayı ihlal tanımlayan sütun değer atamaları. Bu sütundaki değeri kısıtlamayı ihlal eden satırları sorgulanırken bir deyim, WHERE yan tümcesinde kullanılamaz. |
İzinler
Üyelik gerektirir sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü.
Örnekler
C.Bir tablo denetimi
Aşağıdaki örnek, kısıtlamayı denetler bütünlük tablo Table1 içinde AdventureWorks Veritabanı.
b.Belirli bir kısıtlama denetleniyor
Aşağıdaki örnek bütünlüğünü denetler CK_ProductCostHistory_EndDate kısıtlama.
c.Tüm etkin denetleyip tüm tabloları kısıtlamaları'nı devre dışı
Aşağıdaki örnek, tüm bütünlük etkin ve bu kısıtlamalar, geçerli veritabanındaki tüm tabloları devre dışı denetler.