SchemaeinschränkungenSchema Restrictions

Den optionalen zweiten Parameter von der GetSchema Methode ist die Einschränkungen, die verwendet werden, um die Begrenzung des Umfangs der Schemainformationen zurückgegeben und erfolgt eine Übergabe an die GetSchema -Methode ein Array von Zeichenfolgen .The second optional parameter of the GetSchema method is the restrictions that are used to limit the amount of schema information returned, and it is passed to the GetSchema method as an array of strings. Die Position im Array bestimmt die Werte, die zurückgegeben werden können. Dies entspricht der Anzahl der Einschränkungen.The position in the array determines the values that you can pass, and this is equivalent to the restriction number.

In der folgenden Tabelle werden beispielsweise die Einschränkungen beschrieben, die von der Schemaauflistung "Tables" mithilfe des .NET Framework-Datenanbieters für SQL Server unterstützt werden.For example, the following table describes the restrictions supported by the "Tables" schema collection using the .NET Framework Data Provider for SQL Server. Zusätzliche Einschränkungen für SQL Server-Schemaauflistungen werden am Ende dieses Themas aufgeführt.Additional restrictions for SQL Server schema collections are listed at the end of this topic.

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Name TABLE_NAMETABLE_NAME 33
TableTypeTableType @TableType TABLE_TYPETABLE_TYPE 44

Angeben der EinschränkungswerteSpecifying Restriction Values

Wenn Sie eine der Einschränkungen der Tables-Schemaauflistung verwenden möchten, erstellen Sie ein Zeichenfolgenarray mit vier Elementen und fügen einen Wert in das Element ein, das mit der Einschränkungsnummer übereinstimmt.To use one of the restrictions of the "Tables" schema collection, simply create an array of strings with four elements, then place a value in the element that matches the restriction number. Z. B. zum Einschränken der Tabellen zurückgegeben, durch die GetSchema Methode, um nur die Tabellen im Schema "Sales" legen Sie das zweite Element des Arrays "Sales" vor der Übergabe an die GetSchema Methode.For example, to restrict the tables returned by the GetSchema method to only those tables in the "Sales" schema, set the second element of the array to "Sales" before passing it to the GetSchema method.

Hinweis

Die Einschränkungsauflistungen für den SqlClient und den OracleClient verfügen über eine zusätzliche ParameterName-Spalte.The restrictions collections for SqlClient and OracleClient have an additional ParameterName column. Die Spalte für den Einschränkungsstandard ist zwar aus Gründen der Abwärtskompatibilität vorhanden, wird aber derzeit ignoriert.The restriction default column is still there for backwards compatibility, but is currently ignored. Verwenden Sie Abfragen mit Parametern statt Zeichenfolgenersetzungen, um das Risiko eines SQL-Injection-Angriffs beim Angeben der Einschränkungswerte zu minimieren.Parameterized queries rather than string replacement should be used to minimize the risk of an SQL injection attack when specifying restriction values.

Hinweis

Die Anzahl der Elementen im Array muss kleiner oder gleich der Anzahl der Einschränkungen sein, die für die angegebene Schemaauflistung unterstützt werden, da sonst eine ArgumentException ausgelöst wird.The number of elements in the array must be less than or equal to the number of restrictions supported for the specified schema collection else an ArgumentException will be thrown. Es können weniger Elemente als die maximale Anzahl der Einschränkungen vorhanden sein.There can be fewer than the maximum number of restrictions. Es wird davon ausgegangen, dass die fehlenden Einschränkungen NULL (uneingeschränkt) sind.The missing restrictions are assumed to be null (unrestricted).

Sie können einen verwalteten .NET Framework-Anbieter, um die Liste der unterstützten Einschränkungen durch Aufrufen von Abfragen die GetSchema Methode mit dem Namen der schemaauflistung der Einschränkungen, die "Restrictions" lautet.You can query a .NET Framework managed provider to determine the list of supported restrictions by calling the GetSchema method with the name of the restrictions schema collection, which is "Restrictions". Dabei wird eine DataTable mit einer Liste der Auflistungsnamen, Einschränkungsnamen, Standardeinschränkungswerte und der Anzahl der Einschränkungen zurückgegeben.This will return a DataTable with a list of the collection names, the restriction names, the default restriction values, and the restriction numbers.

BeispielExample

Die folgenden Beispiele veranschaulichen, wie Sie die GetSchema Methode von der .NET Framework-Datenanbieter für SQL Server SqlConnection -Klasse zum Abrufen von Schemainformationen zu allen enthaltenen Tabellen die AdventureWorksBeispieldatenbank und zum Einschränken der Informationen, die an die Tabellen im "Sales"-Schema zurückgegeben:The following examples demonstrate how to use the GetSchema method of the .NET Framework Data Provider for the SQL Server SqlConnection class to retrieve schema information about all of the tables contained in the AdventureWorks sample database, and to restrict the information returned to only those tables in the "Sales" schema:

Imports System.Data.SqlClient  

Module Module1  
Sub Main()  
  Dim connectionString As String = _  
    "Data Source=(local);Database=AdventureWorks;" & _  
       "Integrated Security=true;";  

  Dim restrictions(3) As String  
  Using connection As New SqlConnection(connectionString)  
    connection.Open()  

    'Specify the restrictions.  
    restrictions(1) = "Sales"  
    Dim table As DataTable = connection.GetSchema("Tables", _  
       restrictions)  

    ' Display the contents of the table.  
      For Each row As DataRow In table.Rows  
         For Each col As DataColumn In table.Columns  
            Console.WriteLine("{0} = {1}", col.ColumnName, row(col))  
         Next  
         Console.WriteLine("============================")  
      Next  
    Console.WriteLine("Press any key to continue.")  
    Console.ReadKey()  
  End Using  
End Sub  
End Module  
using System;  
using System.Data;  
using System.Data.SqlClient;  

class Program  
{  
  static void Main()  
  {  
    string connectionString =   
       "Data Source=(local);Database=AdventureWorks;" +  
       "Integrated Security=true;";  
    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.  
        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("============================");  
        }  
        Console.WriteLine("Press any key to continue.");  
        Console.ReadKey();  
    }  
  }  

  private static string GetConnectionString()  
  {  
     // To avoid storing the connection string in your code,  
     // you can retrieve it from a configuration file.  
     return "Data Source=(local);Database=AdventureWorks;" +  
        "Integrated Security=true;";  
  }  

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

SQL Server-SchemabeschränkungenSQL Server Schema Restrictions

In den folgenden Tabellen sind die Beschränkungen für SQL Server-Schemaauflistungen aufgeführt.The following tables list the restrictions for SQL Server schema collections.

BenutzerUsers

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
User_NameUser_Name @Name Namename 11

DatabasesDatabases

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
nameName @Name nameName 11

TabellenTables

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Name TABLE_NAMETABLE_NAME 33
TableTypeTableType @TableType TABLE_TYPETABLE_TYPE 44

ColumnsColumns

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33
SpalteColumn @Column COLUMN_NAMECOLUMN_NAME 44

StructuredTypeMembersStructuredTypeMembers

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33
SpalteColumn @Column COLUMN_NAMECOLUMN_NAME 44

AnsichtenViews

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33

ViewColumnsViewColumns

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog VIEW_CATALOGVIEW_CATALOG 11
BesitzerOwner @Owner VIEW_SCHEMAVIEW_SCHEMA 22
TabelleTable @Table VIEW_NAMEVIEW_NAME 33
SpalteColumn @Column COLUMN_NAMECOLUMN_NAME 44

ProcedureParametersProcedureParameters

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog SPECIFIC_CATALOGSPECIFIC_CATALOG 11
BesitzerOwner @Owner SPECIFIC_SCHEMASPECIFIC_SCHEMA 22
nameName @Name SPECIFIC_NAMESPECIFIC_NAME 33
ParameterParameter @Parameter PARAMETER_NAMEPARAMETER_NAME 44

VerfahrenProcedures

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog SPECIFIC_CATALOGSPECIFIC_CATALOG 11
BesitzerOwner @Owner SPECIFIC_SCHEMASPECIFIC_SCHEMA 22
nameName @Name SPECIFIC_NAMESPECIFIC_NAME 33
TypType @Type ROUTINE_TYPEROUTINE_TYPE 44

IndexColumnsIndexColumns

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog db_name()db_name() 11
BesitzerOwner @Owner user_name()user_name() 22
TabelleTable @Table o.nameo.name 33
ConstraintNameConstraintName @ConstraintName x.namex.name 44
SpalteColumn @Column c.namec.name 55

IndexesIndexes

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog db_name()db_name() 11
BesitzerOwner @Owner user_name()user_name() 22
TabelleTable @Table o.nameo.name 33

UserDefinedTypesUserDefinedTypes

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
assembly_nameassembly_name @AssemblyName assemblies.nameassemblies.name 11
udt_nameudt_name @UDTName types.assembly_classtypes.assembly_class 22

ForeignKeysForeignKeys

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog CONSTRAINT_CATALOGCONSTRAINT_CATALOG 11
BesitzerOwner @Owner CONSTRAINT_SCHEMACONSTRAINT_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33
nameName @Name CONSTRAINT_NAMECONSTRAINT_NAME 44

SQL Server 2008-SchemabeschränkungenSQL Server 2008 Schema Restrictions

In den folgenden Tabellen sind die Beschränkungen für SQL Server 2008-Schemaauflistungen aufgeführt.The following tables list the restrictions for SQL Server 2008 schema collections. Diese Beschränkungen gelten ab Version 3.5 SP1 von .NET Framework und SQL Server 2008.These restrictions are valid beginning with version 3.5 SP1 of the .NET Framework and SQL Server 2008. Sie werden in früheren Versionen von .NET Framework und SQL Server nicht unterstützt.They are not supported in earlier versions of the .NET Framework and SQL Server.

ColumnSetColumnsColumnSetColumns

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33

AllColumnsAllColumns

EinschränkungsnameRestriction Name ParameternameParameter Name EinschränkungsstandardRestriction Default EinschränkungsnummerRestriction Number
CatalogCatalog @Catalog TABLE_CATALOGTABLE_CATALOG 11
BesitzerOwner @Owner TABLE_SCHEMATABLE_SCHEMA 22
TabelleTable @Table TABLE_NAMETABLE_NAME 33
SpalteColumn @Column COLUMN_NAMECOLUMN_NAME 44

Siehe auchSee Also

ADO.NET Managed Provider und DataSet Developer CenterADO.NET Managed Providers and DataSet Developer Center