sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-serverforespørgsel for at få listen over kolonner i en tabel sammen med datatyper, IKKE NULL og PRIMÆRE NØGLE-begrænsninger

For at undgå duplikerede rækker for nogle kolonner skal du bruge user_type_id i stedet for 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')

Bare udskift YourTableName med dit faktiske tabelnavn - virker til SQL Server 2005 og nyere.

Hvis du bruger skemaer, skal du erstatte YourTableName af YourSchemaName.YourTableName hvor YourSchemaName er det faktiske skemanavn og YourTableName er det faktiske tabelnavn.



  1. postgresql single instace installationer

  2. Migrering af en Oracle-database til MySQL på AWS, del 2

  3. Hvorfor har en oracle plsql varchar2-variabel brug for en størrelse, men en parameter ikke?

  4. Hvordan LOWER() virker i MariaDB