sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2008:obtener restricciones de tabla

Debe usar el sys actual vistas de catálogo (si está en SQL Server 2005 o más reciente:los sysobjects las vistas están en desuso y debe evitarse):consulte la extensa documentación de MSDN SQL Server Books Online sobre vistas de catálogo aquí.

Hay bastantes vistas que podrían interesarle:

  • sys.default_constraints para restricciones predeterminadas en columnas
  • sys.check_constraints para verificar restricciones en columnas
  • sys.key_constraints para restricciones clave (por ejemplo, claves principales)
  • sys.foreign_keys para relaciones de clave externa

y mucho mucho más - ¡Compruébalo!

Puede consultar y unirse a esas vistas para obtener la información necesaria, p. esto enumerará las tablas, columnas y todas las restricciones predeterminadas definidas en ellas:

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