2009-03-18 24 views

Respuesta

138
SELECT COUNT(*) 
    FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_catalog = 'database_name' -- the database 
    AND table_name = 'table_name' 
+1

Hola i cant bajo el soporte, aquí la información que puede por favor, dame la consulta una vez más .. tabla Nombre = post columnas del anuncio = , PostingDate, Body – praveenjayapal

+2

A menos que esté confundido, está buscando cuántas columnas hay en la tabla. Si se ejecuta la siguiente consulta, devolverá 3 (suponiendo que las únicas columnas son del anuncio, PostingDate y cuerpo) SELECT COUNT (*) DE INFORMATION_SCHEMA.COLUMNS DONDE nombre_tabla = 'post' –

+10

creo que es necesario sustituir " table_schema "arriba con" TABLE_CATALOG "para la variable 'database_name' –

3

o utilizar el sys.columns

--SQL 2005 
SELECT * 
FROM sys.columns 
WHERE OBJECT_NAME(object_id) = 'spt_values' 
-- returns 6 rows = 6 columns 

--SQL 2000 
SELECT * 
FROM syscolumns 
WHERE OBJECT_NAME(id) = 'spt_values' 
-- returns 6 rows = 6 columns 

SELECT * 
FROM dbo.spt_values 
    -- 6 columns indeed 
3

Su sido poco tarde, pero por favor tomar de mí ...

En el editor (Nueva consulta) por seleccione el objeto de base de datos puede ser una tabla también, si usamos la tecla de acceso directo Alt + F1 obtendremos toda la información del objeto y creo que también resolverá su problema.

2

de consulta para contar el número de columnas en una tabla:

select count(*) from user_tab_columns where table_name = 'tablename'; 

Reemplazar nombre de tabla con el nombre de la tabla cuyo número total de columnas que desea obtener.

+0

también es aplicable para MYSQL, porque no puedo ejecutarlo –

4
String quer="SELECT * FROM sample2"; 

    Statement st=con.createStatement(); 
    ResultSet rs=st.executeQuery(quer); 
    ResultSetMetaData rsmd = rs.getMetaData(); 
    int NumOfCol=0; 
    NumOfCol=rsmd.getColumnCount(); 
    System.out.println("Query Executed!! No of Colm="+NumOfCol); 
+0

No hay necesidad de consultar la tabla del sistema .. Utilice la función directa como la de arriba ... – Himanshu

+2

Este es un buen enfoque genérico (RDBMS agnóstico). Solo sugiero cambiar la consulta a 'SELECT * FROM sample2 WHERE 1 = 2'. De esta manera, puede obtener el esquema pero no los datos, lo que podría agregar una sobrecarga innecesaria. – Cascader

0

Siguiendo consulta busca cómo columnas en la tabla: -

SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = 'TableName'; 
1

se puede obtener mediante sentencia de SQL siguiente:

select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name') 
1
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo' 
AND TABLE_NAME = 'table_name' 
0

Una respuesta MySQL adaptado ligeramente de la MSDN example for MySqlDataReader.GetValues:

//assumes you've already created a connection, opened it, 
//and executed a query to a reader 

while(reader.Read()) 
{ 
    Object[] values = new Object[reader.FieldCount]; 
    int fieldCount = reader.GetValues(values); 

    Console.WriteLine("\nreader.GetValues retrieved {0} columns.", fieldCount); 
    for (int i = 0; i < fieldCount; i++) 
     Console.WriteLine(values[i]); 
} 

El uso de MySqlDataReader.FieldCount le permitirá recuperar el número de columnas en la fila que ha consultado.

1
SELECT count(*) FROM information_schema.`COLUMNS` C 
WHERE table_name = 'your_table_name' 
AND TABLE_SCHEMA = "your_db_name" 
+0

Lo he usado esto realmente funciona para MySQL –

23
SELECT COUNT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_CATALOG = 'Database name' 
    AND TABLE_SCHEMA = 'dbo' 
    AND TABLE_NAME = 'table name' 
+0

Esta respuesta debe aceptarse como respuesta. – Asad

+1

Esta respuesta funciona perfectamente, al menos con Microsoft SQL Server –

+0

Esta respuesta funciona muy bien. – ZeeProgrammer

2

Es posible encontrar el número de columnas de una tabla sólo mediante el uso de 3 líneas simples de código.

$sql="SELECT * FROM table"; 
$query=mysqli_query($connect_dude,$sql);  
$num=mysqli_num_fields($query); 

$num le devolverá el número de columns en una tabla dada en este caso.

Afortunadamente, ayudaría a los demás.

2

Bueno, probé la respuesta de Nathan Koop y no funcionó para mí. He cambiado a la siguiente y lo hizo el trabajo:

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'table_name' 

Tampoco funciona si pongo ni USE 'database_name'WHERE table_catalog = 'database_name' AND table_name' = 'table_name'. De hecho, me alegrará saber por qué.

2
SELECT count(*) 
FROM information_schema.columns 
WHERE table_name = 'Your_table_nale'; 

Nota: Your_table_nale sustituir por el nombre de la tabla

0
SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_NAME = 'table_name'; 
+0

Lo anterior debería funcionar para obtener el número de columnas en una tabla especificada en la base de datos del servidor SQL. –

+0

Esto es solo un duplicado de la respuesta aceptada –

Cuestiones relacionadas