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