Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottieni i nomi delle colonne da una query senza dati

La prima cosa che dovresti fare è assicurarti che nessun dato venga restituito:

SELECT TOP 0 [vwGetData].* FROM [vwGetData] WHERE 1 = 2;

Ora supponendo che tu sappia come configurare un DataReader, dovresti fare quanto segue:

using(var reader = command.ExecuteReader())
{
  // This will return false - we don't care, we just want to make sure the schema table is there.
  reader.Read();

  var tableSchema = reader.GetSchemaTable();

  // Each row in the table schema describes a column
  foreach (DataRow row in tableSchema.Rows)
  {
    Console.WriteLine(row["ColumnName"]);
  }
}

Puoi anche esaminare le Viste SYS del catalogo SQL .