DBCC CHECKCONSTRAINTS (Transact-SQL)
Sprawdza integralność ograniczenia określonych lub wszystkich ograniczeń określonej tabela w bieżącej bazie danych.
Składnia
DBCC CHECKCONSTRAINTS
[
(
table_name | table_id | constraint_name | constraint_id
)
]
[ WITH
[ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]
[ , ] [ NO_INFOMSGS ]
]
Argumenty
table_name | table_id | constraint_name | constraint_id
To ograniczenie ma być sprawdzony lub tabela .Gdy table_name lub table_id jest określony, wszystkie ograniczenia włączone w tej tabela są sprawdzane.Gdy constraint_name lub constraint_id jest określony, jest sprawdzany tylko tego ograniczenia.Jeśli określony identyfikator tabela ani identyfikator ograniczenia nie są sprawdzane wszystkie ograniczenia włączonych na wszystkie tabele w bieżącej bazie danych.Nazwa ograniczenia unikatowo identyfikuje tabela , do której należy.Aby uzyskać więcej informacji, zobacz Identyfikatory.
Z
Włącza opcjeALL_CONSTRAINTS
Sprawdza, czy wszystkie włączone i wyłączone ograniczenia dla tabela , jeśli określono nazwę tabela lub wszystkie tabele są kontrolowane; w przeciwnym razie sprawdza, czy włączone ograniczenie.ALL_CONSTRAINTS jest ignorowany, jeśli nie określono nazwy ograniczenia.ALL_ERRORMSGS
Zwraca wszystkie wiersze, które naruszają ograniczenia w tabela jest zaznaczone.Wartość domyślna to pierwsze 200 wierszy.NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.
Uwagi
DBCC CHECKCONSTRAINTS konstrukcje i wykonuje kwerendę dla wszystkich ograniczeń klucza OBCEGO i ograniczeń CHECK dla tabela.
Na przykład kwerenda klucz obcy jest następującą postać:
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
Dane kwerendy są przechowywane w tymczasowej tabela.Po wszystkich żądanych tabel lub ograniczenia zostały sprawdzone, zestaw wyników jest zwracany.
DBCC CHECKCONSTRAINTS sprawdza integralność klucza OBCEGO i ograniczeń CHECK, ale nie sprawdza integralność struktur danych na dysku w tabela.Kontrole te struktury danych można wykonać za pomocą dbcc checkdb i dbcc checktable.
Zestawy wyników
DBCC CHECKCONSTRAINTS zwraca zestaw wierszy z następujących kolumn.
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
Table Name |
varchar |
Nazwa tabela. |
Constraint Name |
varchar |
Nazwa ograniczenia, które jest naruszona. |
Where |
varchar |
Kolumna wartości przydziałów, które identyfikują wiersz lub wiersze naruszenie ograniczenia. Wartość w kolumna może być używana w klauzula SELECT instrukcja kwerendy dla wierszy, które naruszają ograniczenia. |
Uprawnienia
Wymaga członkostwa w sysadmin stała rola serwera lub db_owner rola bazy danychstałej.
Przykłady
A.Sprawdzanie tabela
W poniższym przykładzie sprawdzana ograniczenie integralność tabela Table1 w AdventureWorks2008R2 bazy danych.
USE AdventureWorks2008R2;
GO
CREATE TABLE Table1 (Col1 int, Col2 char (30));
GO
INSERT INTO Table1 VALUES (100, 'Hello');
GO
ALTER TABLE Table1 WITH NOCHECK ADD CONSTRAINT chkTab1 CHECK (Col1 > 100);
GO
DBCC CHECKCONSTRAINTS(Table1);
GO
B.Sprawdzanie specyficzne ograniczenia
W poniższym przykładzie sprawdzana integralność CK_ProductCostHistory_EndDate ograniczenie.
USE AdventureWorks2008R2;
GO
DBCC CHECKCONSTRAINTS ("Production.CK_ProductCostHistory_EndDate");
GO
C.Sprawdzanie wszystkich włączone i wyłączone z ograniczeń na wszystkie tabele
W poniższym przykładzie sprawdzana integralność wszystkich włączone i wyłączone z ograniczeń na wszystkie tabele w bieżącej bazie danych.
DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
GO
Zobacz także