Pregunta ¿Cómo puedo obtener los nombres de columna de una tabla en SQL Server?


Me gustaría consultar el nombre de todas las columnas de una tabla. Encontré cómo hacer esto en:

Pero necesito saber: ¿Cómo puede hacerse esto en Microsoft SQL Server (2008 en mi caso)?


511
2018-06-28 14:05


origen


Respuestas:


Puede obtener esta información y mucho, mucho más consultando el Vistas del esquema de información.

Esta consulta de muestra:

SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

Se puede hacer sobre todos estos objetos DB:


643
2018-06-28 14:08



Puede usar el procedimiento almacenado sp_columns que devolverá información perteneciente a todas las columnas de una tabla determinada. Aquí se puede encontrar más información http://msdn.microsoft.com/en-us/library/ms176077.aspx

También puede hacerlo mediante una consulta SQL. Algo como esto debería ayudar -

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

O una variación sería:

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

Esto obtiene todas las columnas de todas las tablas, ordenadas por nombre de tabla y luego por nombre de columna.


159
2018-06-28 14:19



select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

Esto es mejor que obtener sys.columns porque muestra DATA_TYPE directamente.


112
2018-02-23 18:08



Puedes usar sp_help en SQL Server 2008.

sp_help <table_name>;

Atajo de teclado para el comando anterior select table name (resaltarlo) y presione ALT+F1.


43
2018-03-17 14:17



Al usar esta consulta obtienes la respuesta:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'

39
2018-06-30 04:50



--Esta es otra variación utilizada para documentar una gran base de datos para la conversión (Editado para - eliminar columnas estáticas)

SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c 
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype  
WHERE o.type = 'U' 
ORDER BY o.Name, c.Name

--En la combinación de la izquierda, c.type se reemplaza por c.xtype para obtener los tipos de varchar


23
2017-07-08 21:18



Puede escribir esta consulta para obtener el nombre de la columna y todos los detalles sin usar INFORMATION_SCHEMA en MySql:

SHOW COLUMNS FROM database_Name.table_name;

21
2017-12-16 07:15



SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable 
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position

14
2017-10-28 05:37