Partilhar via


Obtenha esquemas e coleções de esquemas

Aplica-se a: .NET Framework .NET .NET Standard

Baixar ADO.NET

As classes SqlConnection no Microsoft SqlClient Data Provider para SQL Server implementam um método GetSchema que é usado para recuperar informação de esquema sobre a base de dados atualmente ligada, e a informação de esquema devolvida pelo método GetSchema surge sob a forma de um DataTable. O método GetSchema é um método sobrecarregado que fornece parâmetros opcionais para especificar a coleção de esquemas a devolver, restringindo a quantidade de informação devolvida.

Especificação das coleções de esquemas

O primeiro parâmetro opcional do método GetSchema é o nome da coleção, que é especificado como uma cadeia. Há dois tipos de coleções de esquema: coleções de esquema comuns que são comuns a todos os provedores e coleções de esquema específicas que são específicas para cada provedor.

Pode consultar o Microsoft SqlClient Data Provider para SQL Server para determinar a lista de coleções de esquemas suportadas chamando o método GetSchema sem argumentos, ou com o nome da coleção de esquemas "MetaDataCollections". Isso retornará uma DataTable com uma lista das coleções de esquema suportadas, o número de restrições que cada uma delas suporta e o número de partes de identificador que elas usam.

Exemplo de recuperação de coleções de esquemas

Os exemplos seguintes demonstram como usar o GetSchema método da classe Microsoft SqlClient Data Provider for SQL Server SqlConnection para recuperar informações de esquema de todas as tabelas contidas na base de dados de exemplo AdventureWorks :

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

Consulte também