Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Запитване на SQL сървър за получаване на списъка с колони в таблица заедно с ограниченията типове данни, NOT NULL и PRIMARY KEY

За да избегнете дублиране на редове за някои колони, използвайте user_type_id вместо 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')

Просто заменете YourTableName с действителното ви име на таблица - работи за SQL Server 2005 и по-нови версии.

В случай, че използвате схеми, заменете YourTableName от YourSchemaName.YourTableName където YourSchemaName е действителното име на схемата и YourTableName е действителното име на таблицата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Методи за пейджинг на SQL Server 2008?

  2. Трябва да предам имена на колони, използвайки променлива в оператора за избор в процедурата на магазин, но не мога да използвам динамична заявка

  3. Показване на разширени опции за конфигурация на сървъра в SQL Server (T-SQL)

  4. Актуализирайте данните чрез функция с таблично значение в SQL Server

  5. Как да импортирате голям MS SQL .sql файл?