DBCC CHECKCONSTRAINTS (Transact-SQL)

Sprawdza integralność ograniczenia określonych lub wszystkich ograniczeń określonej tabela w bieżącej bazie danych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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 opcje

  • ALL_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