Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2008 - Obtenir les contraintes de table

Vous devez utiliser le sys actuel vues de catalogue (si vous êtes sur SQL Server 2005 ou plus récent - les sysobjects les vues sont obsolètes et devrait être évitée) - consultez la documentation en ligne complète de MSDN SQL Server sur les vues de catalogue ici.

Plusieurs vues pourraient vous intéresser :

  • sys.default_constraints pour les contraintes par défaut sur les colonnes
  • sys.check_constraints pour vérifier les contraintes sur les colonnes
  • sys.key_constraints pour les contraintes de clé (par exemple, les clés primaires)
  • sys.foreign_keys pour les relations de clé étrangère

et beaucoup plus - regardez-le !

Vous pouvez interroger et joindre ces vues pour obtenir les informations nécessaires - par ex. cela listera les tables, les colonnes et toutes les contraintes par défaut définies sur celles-ci :

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