Para los diversos sistemas de bases de datos populares, ¿cómo enumera todas las columnas de una tabla?
Para los diversos sistemas de bases de datos populares, ¿cómo enumera todas las columnas de una tabla?
Respuestas:
Para MySQL, use:
DESCRIBE name_of_table;
Esto también funciona para Oracle siempre que esté utilizando SQL * Plus o el Desarrollador SQL de Oracle.
DESCRIBE
name_of_table '';
DESCRIBE
que no es una instrucción Oracle PLSQL sino un comando SQL * Plus , y como tal no funciona en la mayoría de los IDE de SQL.
Para Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
Para MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
en tu consulta?
Para MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
La vista del sistema es parte del ANSI SQL
estándar ( enlace ).
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 años después, para Honor de PostgreSQL, el DDBB más avanzado del Reino)
En PostgreSQL:
\d table_name
O, usando SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
Sé que es tarde, pero uso este comando para Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
servidor SQL
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
o
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
La segunda forma es un estándar ANSI y, por lo tanto, debería funcionar en todas las bases de datos compatibles con ANSI.
[
]
alrededor, por lo que la consulta no debe usarlos, solo el nombre de la tabla sin formato. Si esa no era la intención del OP, al menos tenga en cuenta esto.
<Table Name>
habría evitado la ambigüedad. De todos modos, me di cuenta de que podría haber tenido la intención de que, al escribir el comentario, no perjudique advertir a los demás por si acaso.
Microsoft SQL Server Management Studio 2008 R2:
En un editor de consultas, si resalta el texto del nombre de la tabla (ex dbo.MyTable) y presiona ALT+ F1, obtendrá una lista de nombres de columna, tipo, longitud, etc.
ALT+ F1mientras ha resaltado dbo.MyTable
es el equivalente a ejecutar de EXEC sp_help 'dbo.MyTable'
acuerdo con este sitio
No puedo hacer que funcionen las variaciones de las consultas INFORMATION_SCHEMA.COLUMNS, por lo que utilizo esto en su lugar.
servidor SQL
Para enumerar todas las tablas definidas por el usuario de una base de datos:
use [databasename]
select name from sysobjects where type = 'u'
Para enumerar todas las columnas de una tabla:
use [databasename]
select name from syscolumns where id=object_id('tablename')
Solo una ligera corrección en los demás en SQL Server (¡el prefijo de esquema se está volviendo más importante!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
Ejemplo:
select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema] from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME
Solo mi codigo