DBCC CHECKCONSTRAINTS (Transact-SQL)
Data aggiornamento: 5 dicembre 2005
Controlla l'integrità di un vincolo specificato oppure di tutti i vincoli di una tabella specificata nel database corrente.
Convenzioni della sintassi Transact-SQL
Sintassi
DBCC CHECKCONSTRAINTS
[
(
table_name | table_id | constraint_name | constraint_id
)
]
[ WITH
[ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]
[ , ] [ NO_INFOMSGS ]
]
Argomenti
table_name | table_id | constraint_name | constraint_id
Tabella o vincolo che si desidera controllare. Se si specifica table_name o table_id, vengono controllati tutti i vincoli attivati della tabella specificata. Se viene specificato constraint_name o constraint_id, viene controllato solo tale vincolo. Se non viene specificato né un identificatore di tabella né un identificatore di vincolo, vengono controllati tutti i vincoli attivati di tutte le tabelle nel database corrente.Un nome di vincolo identifica in modo univoco la tabella a cui appartiene. Per ulteriori informazioni, vedere Identificatori.
- WITH
Consente di specificare opzioni.
- ALL_CONSTRAINTS
Controlla tutti i vincoli attivati e disattivati della tabella se viene specificato il nome della tabella o se vengono controllate tutte le tabelle. In caso contrario, viene controllato solo il vincolo attivato. ALL_CONSTRAINTS non ha alcun effetto quando viene specificato un nome di vincolo.
- ALL_ERRORMSGS
Restituisce tutte le righe che violano i vincoli della tabella controllata. Per impostazione predefinita vengono restituite le prime 200 righe.
- NO_INFOMSGS
Disattiva tutti i messaggi informativi.
Set di risultati
DBCC CHECKCONSTRAINTS restituisce un set di righe con le colonne seguenti.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
Table Name |
varchar |
Nome della tabella. |
Constraint Name |
varchar |
Nome del vincolo violato. |
Where |
varchar |
Assegnazioni di valori di colonna che identificano una o più righe che violano il vincolo. È possibile utilizzare il valore di questa colonna in una clausola WHERE di un'istruzione SELECT che esegue una query per individuare le righe che violano il vincolo. |
Osservazioni
L'istruzione DBCC CHECKCONSTRAINTS crea ed esegue una query per ottenere tutti i vincoli FOREIGN KEY e CHECK di una tabella.
Una query di chiave esterna, ad esempio, presenta il seguente formato:
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
I dati della query vengono archiviati in una tabella temporanea. Dopo che tutte le tabelle o tutti i vincoli richiesti sono stati controllati, viene restituito il set di risultati.
L'istruzione DBCC CHECKCONSTRAINTS controlla l'integrità dei vincoli FOREIGN KEY e CHECK, ma non l'integrità delle strutture di dati su disco di una tabella. Il controllo di tali strutture può essere eseguito mediante DBCC CHECKDB e DBCC CHECKTABLE.
Autorizzazioni
È richiesta l'appartenenza al ruolo predefinito del server sysadmin o al ruolo predefinito del database db_owner.
Esempi
A. Controllo di una tabella
Nell'esempio seguente viene controllata l'integrità dei vincoli della tabella Table1
nel database AdventureWorks
.
USE AdventureWorks;
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. Controllo di un vincolo specifico
Nell'esempio seguente viene controllata l'integrità del vincolo CK_ProductCostHistory_EndDate
nello schema Production
.
USE AdventureWorks;
GO
DBCC CHECKCONSTRAINTS ("Production.CK_ProductCostHistory_EndDate");
GO
C. Controllo di tutti i vincoli attivati e disattivati di tutte le tabelle
Nell'esempio seguente viene controllata l'integrità di tutti i vincoli attivati e disattivati di tutte le tabelle nel database corrente.
DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
GO
Vedere anche
Riferimento
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
DBCC (Transact-SQL)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
5 dicembre 2005 |
|