Udostępnij przez


Ograniczenia schematu

Dotyczy: .NET Framework .NET Standard

Pobieranie ADO.NET

Drugi opcjonalny parametr metody GetSchema to ograniczenia, które są używane do ograniczania ilości zwracanych informacji schematu i jest przekazywany do metody GetSchema jako tablicy ciągów. Pozycja w tablicy określa wartości, które można przekazać, i jest to równoważne liczbie ograniczeń.

Na przykład w poniższej tabeli opisano ograniczenia obsługiwane przez kolekcję schematów "Tabele" przy użyciu dostawcy danych Microsoft SqlClient dla programu SQL Server. Dodatkowe ograniczenia dotyczące kolekcji schematów programu SQL Server są wymienione na końcu tego tematu.

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_TABEL 1
Właściciel @Owner TABLE_SCHEMA 2
Tabela @Name NAZWA_TABELI 3
RodzajTabeli @TableType RODZAJ_TABELI 4

Określanie wartości ograniczeń

Aby użyć jednego z ograniczeń kolekcji schematów "Tabele", po prostu utwórz tablicę ciągów z czterema elementami, a następnie umieść wartość w elemecie zgodnym z liczbą ograniczeń. Aby na przykład ograniczyć tabele zwracane przez metodę GetSchema tylko do tych tabel w schemacie "Sales", ustaw drugi element tablicy na "Sales" przed przekazaniem jej do metody GetSchema .

Uwaga / Notatka

  • Kolekcje ograniczeń dla SqlClient mają dodatkową kolumnę ParameterName. Domyślna kolumna ograniczeń jest nadal dostępna dla zgodności z poprzednimi wersjami, ale jest obecnie ignorowana. Zapytania sparametryzowane zamiast zastępowania ciągów powinny być używane w celu zminimalizowania ryzyka ataku iniekcyjnego SQL podczas określania wartości ograniczeń.
  • Liczba elementów w tablicy musi być mniejsza lub równa liczbie ograniczeń obsługiwanych dla określonej kolekcji schematów. W przeciwnym razie ArgumentException zostanie zgłoszony element . Może istnieć mniej niż maksymalna liczba ograniczeń. Przyjmuje się, że brakujące ograniczenia mają wartość null (bez ograniczeń).

Aby określić listę obsługiwanych ograniczeń, możesz wysłać zapytanie do dostawcy danych Microsoft SqlClient dla programu SQL Server, wywołując metodę GetSchema o nazwie kolekcji schematów ograniczeń, czyli "Ograniczenia". Spowoduje to zwrócenie DataTable wartości z listą nazw kolekcji, nazw ograniczeń, domyślnych wartości ograniczeń i numerów ograniczeń.

Example

W poniższych przykładach pokazano, jak używać metody GetSchema dostawcy danych Microsoft SqlClient dla SQL Server SqlConnection w celu pobrania informacji o schemacie wszystkich tabel zawartych w przykładowej bazie danych AdventureWorks oraz ograniczenia informacji zwracanych tylko do tych tabel w schemacie "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("============================");
        }
    }
}

Ograniczenia schematu programu SQL Server

W poniższych tabelach wymieniono ograniczenia dotyczące kolekcji schematów programu SQL Server.

Użytkownicy

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Nazwa_Użytkownika @Name nazwa 1

Databases

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Name @Name Name 1

Tables

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_TABEL 1
Właściciel @Owner TABLE_SCHEMA 2
Tabela @Name NAZWA_TABELI 3
RodzajTabeli @TableType RODZAJ_TABELI 4

Kolumny

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_TABEL 1
Właściciel @Owner TABLE_SCHEMA 2
Tabela @Table NAZWA_TABELI 3
Kolumna @Column NAZWA_KOLUMNY 4

ElementyTypuStrukturalnego

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_TABEL 1
Właściciel @Owner TABLE_SCHEMA 2
Tabela @Table NAZWA_TABELI 3
Kolumna @Column NAZWA_KOLUMNY 4

Views

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_TABEL 1
Właściciel @Owner TABLE_SCHEMA 2
Tabela @Table NAZWA_TABELI 3

Kolumny widoku

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog ZOBACZ KATALOG 1
Właściciel @Owner VIEW_SCHEMA 2
Tabela @Table VIEW_NAME 3
Kolumna @Column NAZWA_KOLUMNY 4

Parametry procedury

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog SPECYFICZNY_KATALOG 1
Właściciel @Owner SPECIFIC_SCHEMA 2
Name @Name SPECIFIC_NAME 3
Parameter @Parameter PARAMETER_NAME 4

Procedures

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog SPECYFICZNY_KATALOG 1
Właściciel @Owner SPECIFIC_SCHEMA 2
Name @Name SPECIFIC_NAME 3
Typ @Type ROUTINE_TYPE 4

Kolumny indeksu

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog db_name() 1
Właściciel @Owner user_name() 2
Tabela @Table o.name 3
ConstraintName @ConstraintName x.nazwa 4
Kolumna @Column c.name 5

Indexes

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog db_name() 1
Właściciel @Owner user_name() 2
Tabela @Table o.name 3

TypyZdefiniowanePrzezUżytkownika

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
nazwa_kompilacji @AssemblyName zespoły.nazwa 1
udt_nazwa @UDTName types.assembly_class 2

Obceklucze

Nazwa ograniczenia Nazwa parametru Domyślne ograniczenie Liczba ograniczeń
Catalog @Catalog KATALOG_OGRANICZEŃ 1
Właściciel @Owner Schemat ograniczeń 2
Tabela @Table NAZWA_TABELI 3
Name @Name NAZWA OGRANICZENIA 4

Zobacz także