sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-serverfråga för att få listan över kolumner i en tabell tillsammans med datatyper, NOT NULL och PRIMÄRNYCKEL-begränsningar

För att undvika dubbletter av rader för vissa kolumner, använd user_type_id istället för 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')

Byt bara ut YourTableName med ditt faktiska tabellnamn - fungerar för SQL Server 2005 och senare.

Om du använder scheman, byt ut YourTableName av YourSchemaName.YourTableName där YourSchemaName är det faktiska schemanamnet och YourTableName är det faktiska tabellnamnet.



  1. Hur man ändrar automatiskt inkrementvärde för MySQL / MariaDB-databasen

  2. MySQL:Hur får man längden på text i en kolumn

  3. Installera webbserver i Windows XP med Apache2, PHP5 och MySQL4 – Del 1

  4. Hur man visar kommentarer för en kolumn med desc-operation