Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008:ottieni i vincoli di tabella

Dovresti usare l'attuale sys visualizzazioni del catalogo (se utilizzi SQL Server 2005 o più recente - il sysobjects le visualizzazioni sono obsolete e dovrebbe essere evitato) - controlla l'ampia documentazione in linea di MSDN SQL Server sulle visualizzazioni del catalogo qui.

Ci sono alcune visualizzazioni che potrebbero interessarti:

  • sys.default_constraints per i vincoli predefiniti sulle colonne
  • sys.check_constraints per controllare i vincoli sulle colonne
  • sys.key_constraints per i vincoli chiave (ad es. chiavi primarie)
  • sys.foreign_keys per le relazioni in chiave estera

e molto molto altro - dai un'occhiata!

Puoi interrogare e unirti a tali visualizzazioni per ottenere le informazioni necessarie, ad es. questo elencherà le tabelle, le colonne e tutti i vincoli predefiniti definiti su di esse:

SELECT 
    TableName = t.Name,
    ColumnName = c.Name,
    dc.Name,
    dc.definition
FROM sys.tables t
INNER JOIN sys.default_constraints dc ON t.object_id = dc.parent_object_id
INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND c.column_id = dc.parent_column_id
ORDER BY t.Name