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 colunassys.check_constraints
para verificar restrições em colunassys.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