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

Requête du serveur SQL pour obtenir la liste des colonnes d'une table avec les types de données, NOT NULL et les contraintes PRIMARY KEY

Pour éviter les lignes en double pour certaines colonnes, utilisez user_type_id au lieu de system_type_id.

SELECT 
    c.name 'Column Name',
    t.Name 'Data type',
    c.max_length 'Max Length',
    c.precision ,
    c.scale ,
    c.is_nullable,
    ISNULL(i.is_primary_key, 0) 'Primary Key'
FROM    
    sys.columns c
INNER JOIN 
    sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN 
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN 
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')

Remplacez simplement YourTableName avec votre nom de table réel - fonctionne pour SQL Server 2005 et versions ultérieures.

Si vous utilisez des schémas, remplacez YourTableName par YourSchemaName.YourTableNameYourSchemaName est le nom du schéma réel et YourTableName est le nom réel de la table.