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)?
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)?
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:
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.
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
Esto es mejor que obtener sys.columns
porque muestra DATA_TYPE
directamente.
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.
Al usar esta consulta obtienes la respuesta:
select Column_name
from Information_schema.columns
where Table_name like 'table name'
--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
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;
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