Partilhar via


Obter o esquema e as coleções de esquemas

Aplicável a: .NET Framework .NET .NET Standard

Baixar ADO.NET

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("============================");
        }
    }
}

Confira também