ver una todas tablas tabla sentencia propiedades obtener nombres nombre listar las estructura desde descripcion datos como columnas sql sql-server sql-server-2008 tsql

tablas - obtener todas las columnas de una tabla sql



¿Cómo puedo obtener nombres de columna de una tabla en SQL Server? (17)

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

Pero necesito saber: ¿cómo se puede hacer esto en Microsoft SQL Server (2008 en mi caso)?


--Esta es otra variación utilizada para documentar una gran base de datos para la conversión (Editado para eliminar las 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 unión izquierda, c.type se reemplaza por c.xtype para obtener tipos varchar


A esta pregunta SO le falta el siguiente enfoque:

-- List down all columns of table ''Logging'' select * from sys.all_columns where object_id = OBJECT_ID(''Logging'')


Al usar esta consulta obtienes la respuesta:

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


Otra opción que es posiblemente más intuitiva es:

SELECT [name] FROM sys.columns WHERE object_id = OBJECT_ID(''[yourSchemaType].[yourTableName]'')

Esto le da todos los nombres de sus columnas en una sola columna. Si le interesan otros metadatos, puede cambiar la edición SELECCIONAR DECLARACIÓN PARA SELECT * .


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;


Puede intentar esto. Esto le da a todos los nombres de columna con sus respectivos tipos de datos.

desc <TABLE NAME> ;


Puede obtener esta información y mucho, mucho más consultando las 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 sp_help en SQL Server 2008.

sp_help <table_name>;

Atajo de teclado para el comando anterior: seleccione el nombre de la tabla (es decir, resáltelo) y presione ALT + F1 .


Puede usar el procedimiento almacenado sp_columns, que devolvería la información correspondiente a todas las columnas para una tabla determinada. Se puede encontrar más información aquí http://msdn.microsoft.com/en-us/library/ms176077.aspx

También puedes 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 en nombre de columna.


Solo ejecuta este comando

EXEC sp_columns ''Your Table Name''


Verificará si la table dada es Tabla base .

SELECT T.TABLE_NAME AS ''TABLE NAME'', C.COLUMN_NAME AS ''COLUMN NAME'' FROM INFORMATION_SCHEMA.TABLES T INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME WHERE T.TABLE_TYPE=''BASE TABLE'' AND T.TABLE_NAME LIKE ''Your Table Name''


puedes usar esta consulta

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME like N''%[ColumnName]%'' and TABLE_NAME = N''[TableName]''


SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''name_of_your_table''


SELECT c.Name FROM sys.columns c JOIN sys.objects o ON o.object_id = c.object_id WHERE o.object_id = OBJECT_ID(''TABLE_NAME'') ORDER BY c.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


SELECT name FROM sys.columns WHERE object_id = OBJECT_ID(''TABLE_NAME'')

// TABLE_NAME es tu tabla


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

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