Partilhar via


Restrições de esquema

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

Baixar ADO.NET

O segundo parâmetro opcional do método GetSchema são as restrições usadas para limitar a quantidade de informação do esquema devolvida, e este é passado para o método GetSchema como um array de cadeias. A posição na matriz determina os valores que você pode passar, e isso é equivalente ao número de restrição.

Por exemplo, a tabela seguinte descreve as restrições suportadas pela coleção de esquemas "Tables" usando o Microsoft SqlClient Data Provider for SQL Server. Restrições adicionais para coleções de esquemas do SQL Server estão listadas no final deste tópico.

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog TABLE_CATALOG 1
Proprietário @Owner ESQUEMA_DA_TABELA 2
Table @Name NOME_DA_TABELA 3
Tipo de tabela @TableType TABLE_TYPE 4

Especificação dos valores de restrição

Para usar uma das restrições da coleção de esquema "Tables", basta criar uma matriz de cadeias de caracteres com quatro elementos e, em seguida, colocar um valor no elemento que corresponda ao número de restrição. Por exemplo, para restringir as tabelas devolvidas pelo método GetSchema apenas às tabelas do esquema "Sales", defina o segundo elemento do array como "Sales" antes de o passar para o método GetSchema .

Observação

  • As coleções de restrições para SqlClient têm uma coluna adicional ParameterName . A coluna padrão de restrição ainda está lá para compatibilidade com versões anteriores, mas é ignorada no momento. Devem ser usadas consultas parametrizadas em vez de substituição de strings para minimizar o risco de um ataque de injeção SQL ao especificar valores de restrição.
  • O número de elementos na matriz deve ser menor ou igual ao número de restrições suportadas para a coleção de esquema especificada, caso contrário, um ArgumentException será lançado. Pode haver menos do que o número máximo de restrições. As restrições em falta são consideradas nulas (sem restrições).

Pode consultar o Microsoft SqlClient Data Provider para SQL Server para determinar a lista de restrições suportadas, chamando o método GetSchema com o nome da coleção de esquemas de restrições, que é "Restrictions". Isso retornará um DataTable com uma lista dos nomes de coleção, os nomes de restrição, os valores de restrição padrão e os números de restrição.

Example

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 sobre todas as tabelas contidas na base de dados de exemplo AdventureWorks , e restringir a informação devolvida apenas às tabelas do esquema "Sales":

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();

            // Specify the restrictions.  
            string[] restrictions = new string[4];
            restrictions[1] = "Sales";
            System.Data.DataTable table = connection.GetSchema("Tables", restrictions);

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

Restrições de esquema do SQL Server

As tabelas a seguir listam as restrições para coleções de esquema do SQL Server.

Utilizadores

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Nome_de_Utilizador @Name nome 1

Databases

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Nome @Name Nome 1

Tables

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog TABLE_CATALOG 1
Proprietário @Owner ESQUEMA_DA_TABELA 2
Table @Name NOME_DA_TABELA 3
Tipo de tabela @TableType TABLE_TYPE 4

Columns

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog TABLE_CATALOG 1
Proprietário @Owner ESQUEMA_DA_TABELA 2
Table @Table NOME_DA_TABELA 3
Coluna @Column NOME_DA_COLUNA 4

StructuredTypeMembros

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog TABLE_CATALOG 1
Proprietário @Owner ESQUEMA_DA_TABELA 2
Table @Table NOME_DA_TABELA 3
Coluna @Column NOME_DA_COLUNA 4

Views

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog TABLE_CATALOG 1
Proprietário @Owner ESQUEMA_DA_TABELA 2
Table @Table NOME_DA_TABELA 3

Ver Colunas

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog VER CATÁLOGO 1
Proprietário @Owner Esquema de Visualização 2
Table @Table NOME_DA_VISTA 3
Coluna @Column NOME_DA_COLUNA 4

Parâmetros de Procedimento

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog CATÁLOGO_ESPECÍFICO 1
Proprietário @Owner SPECIFIC_SCHEMA 2
Nome @Name SPECIFIC_NAME 3
Parâmetro @Parameter NOME_DO_PARÂMETRO 4

Procedures

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog CATÁLOGO_ESPECÍFICO 1
Proprietário @Owner SPECIFIC_SCHEMA 2
Nome @Name SPECIFIC_NAME 3
Tipo @Type TIPO_DE_ROTINA 4

Colunas de Índice

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog db_name() 1
Proprietário @Owner user_name() 2
Table @Table o.name 3
ConstraintName @ConstraintName x.name 4
Coluna @Column c.name 5

Indexes

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog db_name() 1
Proprietário @Owner user_name() 2
Table @Table o.name 3

TiposDefinidosPeloUsuário

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
assembly_name @AssemblyName assembleias.nome 1
udt_name @UDTName tipos.classe_assemblagem 2

Chaves Estrangeiras

Nome da restrição Nome do parâmetro Padrão de restrição Número de restrição
Catalog @Catalog CONSTRAINT_CATALOG 1
Proprietário @Owner RESTRIÇÃO_ESQUEMA 2
Table @Table NOME_DA_TABELA 3
Nome @Name NOME_DA_RESTRIÇÃO 4

Consulte também