스키마 및 스키마마 컬렉션 가져오기
적용 대상: .NET Framework .NET .NET Standard
각 SQL Server용 Microsoft SqlClient 데이터 공급자의 SqlConnection 클래스는 현재 연결된 데이터베이스에 대한 스키마 정보를 검색하는 데 사용되는 GetSchema 메서드를 구현하며 GetSchema 메서드에서 반환된 스키마 정보는 DataTable 형식으로 제공됩니다. GetSchema 메서드는 스키마 컬렉션이 반환되도록 지정하고 반환되는 정보의 양을 제한하기 위한 선택적 매개 변수를 제공하는 오버로드 메서드입니다.
스키마 컬렉션 지정
GetSchema 메서드의 첫 번째 선택적 매개 변수는 문자열로 지정되는 컬렉션 이름입니다. 스키마 컬렉션에는 모든 공급자에 공통되는 공통 스키마 컬렉션과 공급자마다 다른 특정 스키마 컬렉션의 두 가지 유형이 있습니다.
Microsoft SqlClient Data Provider for SQL Server를 쿼리하여 인수를 사용하지 않거나 “MetaDataCollections”라는 스키마 컬렉션 이름으로 GetSchema 메서드를 호출함으로써 지원되는 스키마 컬렉션의 목록을 확인할 수 있습니다. 그러면 지원되는 스키마 컬렉션의 목록, 각자 지원하는 제약 조건 수 및 사용하는 식별자 부분 수가 포함된 DataTable이 반환됩니다.
스키마 컬렉션 검색 예제
다음 예제에서는 SQL Server용 Microsoft SqlClient 데이터 공급자 SqlConnection 클래스의 GetSchema 메서드를 사용하여 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("============================");
}
}
}