Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2008- Obter restrições de tabela


Você deve usar o sys atual exibições de catálogo (se você estiver no SQL Server 2005 ou mais recente - os sysobjects visualizações estão obsoletas e deve ser evitado) - confira a extensa documentação dos Manuais Online do MSDN SQL Server sobre exibições de catálogo aqui.

Existem algumas visualizações nas quais você pode se interessar:
  • sys.default_constraints para restrições padrão em colunas
  • sys.check_constraints para verificar restrições em colunas
  • sys.key_constraints para restrições de chave (por exemplo, chaves primárias)
  • sys.foreign_keys para relações de chave estrangeira

e muito muito mais - Confira!

Você pode consultar e juntar essas visualizações para obter as informações necessárias - por exemplo, isso listará as tabelas, colunas e todas as restrições padrão definidas nelas:
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