Para SQL Server, se estiver usando uma versão mais recente, você pode usar
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
Existem diferentes maneiras de obter o esquema. Usando ADO.NET, você pode usar os métodos de esquema. Use o
DbConnection
's GetSchema
método ou o DataReader
'sGetSchemaTable
método. Desde que você tenha um leitor para a consulta, você pode fazer algo assim:
using(DbCommand cmd = ...)
using(var reader = cmd.ExecuteReader())
{
var schema = reader.GetSchemaTable();
foreach(DataRow row in schema.Rows)
{
Debug.WriteLine(row["ColumnName"] + " - " + row["DataTypeName"])
}
}
Veja este artigo para mais detalhes.