Obter o esquema e as coleções de esquemas
Aplicável a: .NET Framework .NET .NET Standard
As classes SqlConnection no Provedor de Dados Microsoft SqlClient para SQL Server implementa um método GetSchema que é usado para recuperar informações de esquema sobre o banco de dados que está conectado no momento, e as informações de esquema retornadas do método GetSchema são fornecidas na forma de uma DataTable. O método GetSchema é um método sobrecarregado que fornece parâmetros opcionais para especificar a coleção de esquemas a ser retornada e restringir a quantidade de informações retornada.
Como especificar as coleções de esquemas
O primeiro parâmetro opcional do método GetSchema é o nome da coleção que é especificado como uma cadeia de caracteres. Há dois tipos de coleções de esquemas: as coleções de esquemas que são comuns a todos os provedores e as coleções de esquemas específicas de cada provedor.
Consulte o Provedor de Dados Microsoft SqlClient para SQL Server para determinar a lista de coleções de esquemas compatíveis chamando o método GetSchema sem argumentos ou com o nome da coleção de esquemas "MetaDataCollections". Isso retornará uma DataTable com uma lista de coleções de esquemas compatíveis, o número de restrições ao qual cada uma dá suporte e o número de partes de identificador usado por elas.
Exemplo de recuperação de coleções de esquemas
Os seguintes exemplos demonstram como usar o método GetSchema da classe SqlConnection do Provedor de Dados Microsoft SqlClient para SQL Server a fim de recuperar informações de esquema sobre todas as tabelas contidas no banco de dados AdventureWorks de exemplo:
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source = localhost; Integrated Security = true; Initial Catalog = AdventureWorks";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
DataTable table = connection.GetSchema("Tables");
// Display the contents of the table.
DisplayData(table);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}