2009-03-18 16 views

risposta

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

Hi sotto i cant stand qui le informazioni possono prego di darmi la query ancora una volta .. tabella Nome = post colonne = IDannuncio , PostingDate, Body – praveenjayapal

+2

A meno che non sia confuso, stai cercando quante colonne ci sono nella tabella. Se si esegue la seguente query, verrà restituito 3 (supponendo le uniche colonne sono IDannuncio, PostingDate e corpo) SELECT COUNT (*) FROM INFORMATION_SCHEMA.COLUMNS DOVE table_name = 'post' –

+10

penso che è necessario sostituire " table_schema "sopra con" TABLE_CATALOG "per la variabile 'database_name' –

3

o utilizzare lo 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

Il suo stato po 'in ritardo, ma si prega di prendere da me ...

In l'editor (Nuova query) dal selezionare l'oggetto di database può essere anche un tavolo, se usiamo il tasto di scelta rapida Alt + F1 otterremo tutte le informazioni dell'oggetto e penso che risolverà anche il tuo problema.

2

Query per contare il numero di colonne in una tabella:

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

Sostituire nometabella con il nome della tabella il cui totale numero di colonne si desidera venga restituito.

+0

è applicabile anche a MySQL, perché non posso eseguirlo –

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

Non c'è bisogno di interrogare la tabella di sistema .. Usa la funzione diretta come sopra ... – Himanshu

+2

Questo è un buon approccio generico (agnostico RDBMS). Suggerisco solo di cambiare la query in 'SELECT * FROM sample2 WHERE 1 = 2'. In questo modo, è possibile ottenere lo schema ma nessun dato, che potrebbe aggiungere un sovraccarico non necessario. – Cascader

0

seguente query trova how colonne in tabella: -

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

può ottenere usando istruzione SQL seguente:

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 risposta MySQL adattato leggermente dal 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]); 
} 

L'utilizzo di MySqlDataReader.FieldCount consente di recuperare il numero di colonne nella riga richiesta.

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

Ho usato questo funziona davvero per 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

Questa risposta dovrebbe essere accettata come risposta. – Asad

+1

Questa risposta funziona perfettamente, almeno con Microsoft SQL Server –

+0

Questa risposta funziona alla grande. – ZeeProgrammer

2

E 'possibile trovare il numero di colonne in una tabella semplicemente utilizzando 3 semplici linee di codice.

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

$num restituirebbe il numero di columns su una determinata tabella in questo caso.

Speriamo che aiuti gli altri.

2

Beh, ho provato la risposta di Nathan Koop e non ha funzionato per me. Ho cambiato in seguito e ha fatto il lavoro:

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

Inoltre non funziona se metto USE 'database_name'WHERE table_catalog = 'database_name' AND table_name' = 'table_name'. In realtà sarò felice di sapere perché.

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

Nota: Your_table_nale sostituire dal nome della tabella

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

Quanto sopra menzionato dovrebbe funzionare per ottenere il numero di colonne in una tabella specificata nel database di SQL Server. –

+0

Questo è solo un duplicato della risposta accettata –

Problemi correlati