Udostępnij przez


Obsługa rzadkich kolumn (OLE DB)

Dotyczy do:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSystem Platform Analitycznych (PDW)Baza danych SQL w Microsoft Fabric

pobierz sterownik OLE DB

Ten temat zawiera informacje o sterowniku OLE DB Driver dla obsługi SQL Server dla kolumn rzadkich. Więcej informacji o kolumnach rzadkich można znaleźć w artykule Obsługa rzadkich kolumn w sterowniku OLE DB dla SQL Server. Przykład, zobacz Display Column and Catalog Metadata for Sparse Columns (OLE DB).

Metadane oświadczenia OLE DB

Począwszy od SQL Server 2008 (10.0.x), dostępna jest nowa flaga DBCOLUMNFLAGS, DBCOLUMNFLAGS_SS_ISCOLUMNSET. Ta wartość powinna być ustawiona dla kolumn column_set wartości. Flagę DBCOLUMNFLAGS można pobrać za pomocą parametru dwFlags w IColumnsInfo::GetColumnsInfo oraz kolumny DBCOLUMN_FLAGS wiersza zwróconej przez IColumnsRowset::GetColumnsRowset.

Metadane katalogu OLE DB

Do DBSCHEMA_COLUMNS dodano dwie dodatkowe kolumny specyficzne dla SQL Server.

Nazwa kolumny Typ danych Wartuł/komentarze
SS_IS_SPARSE DBTYPE_BOOL Jeśli kolumna jest rzadką, ma wartość VARIANT_TRUE; w przeciwnym razie VARIANT_FALSE.
SS_IS_COLUMN_SET DBTYPE_BOOL Jeśli kolumna jest kolumną rzadkiej column_set , ma wartość VARIANT_TRUE; w przeciwnym razie VARIANT_FALSE.

Dodano także dwa dodatkowe zestawy wierszy schematów. Te zestawy wierszy mają tę samą strukturę co DBSCHEMA_COLUMNS ale zwracają inną treść. DBSCHEMA_COLUMNS_EXTENDED zwraca wszystkie kolumny niezależnie od column_set członkostwa. DBSCHEMA_SPARSE_COLUMN_SET zwraca tylko kolumny będące członkami rzadkiego column_set.

Zachowanie zgodności typu danych OLE DB

Zachowanie DataTypeCompatibility=80 (w ciągu połączeń) jest zgodne z klientem SQL Server 2000 (8.x), w następujący sposób:

  • Nowe zbiory wierszy schematu nie są widoczne i nie ma dla nich wierszy w zbiorze wierszy schematu.

  • Nowe kolumny w zbiorze wierszy COLUMNS nie są widoczne.

  • DBCOLUMNFLAGS_SS_ISCOLUMNSET nie jest ustawione dla column_set kolumn.

  • DBCOMPUTEMODE_NOTCOMPUTED jest ustawione dla column_set kolumn.

Wsparcie OLE DB dla rzadkich kolumn

Następujące interfejsy OLE DB zostały zmodyfikowane w sterowniku OLE DB dla SQL Server, aby obsługiwać rzadkie kolumny:

Funkcja typu lub członka Description
IColumnsInfo::GetColumnsInfo Nowa wartość flagi DBCOLUMNFLAGS DBCOLUMNFLAGS_SS_ISCOLUMNSET jest ustawiona dla column_set kolumn w dwFlags.

DBCOLUMNFLAGS_WRITE jest ustawiony dla column_set kolumn.
IColumnsRowset::GetColumnsRowset Nowa wartość flagi DBCOLUMNFLAGS, DBCOLUMNFLAGS_SS_ISCOLUMNSET, jest ustawiana dla column_set kolumn w DBCOLUMN_FLAGS.

DBCOLUMN_COMPUTEMODE jest ustawiony na DBCOMPUTEMODE_DYNAMIC dla column_set kolumn.
IDBSchemaRowset::GetSchemaRowset DBSCHEMA_COLUMNS zwraca dwie nowe kolumny: SS_IS_COLUMN_SET i SS_IS_SPARSE.

DBSCHEMA_COLUMNS zwraca tylko kolumny, które nie są członkami column_set.

Dodano dwa nowe zestawy wierszy schematu: DBSCHEMA_COLUMNS_EXTENDED zwróci wszystkie kolumny niezależnie od rzadkości column_set członkostw. DBSCHEMA_SPARSE_COLUMN_SET zwraca tylko kolumny będące członkami column_set. Te nowe zestawy wierszy mają te same kolumny i ograniczenia co DBSCHEMA_COLUMNS.
IDBSchemaRowset::GetSchemas IDBSchemaRowset::GetSchemas zawiera GUIDy dla nowych zestawów wierszowych DBSCHEMA_COLUMNS_EXTENDED i DBSCHEMA_SPARSE_COLUMN_SET w liście dostępnych zestawów wierszy schematów.
ICommand::Wykonaj Jeśli zastosuje się select * ztabeli , zwraca wszystkie kolumny, które nie są członkami column_set rzadkiej, plus kolumnę XML zawierającą wartości wszystkich kolumn nie-null, które są członkami rzadkiego column_set, jeśli są obecne.
IOpenRowset::OpenRowset IOpenRowset::OpenRowset zwraca zestaw wierszy z tymi samymi kolumnami co ICommand::Execute, z zapytaniem select * w tej samej tabeli.
ITableDefinition Nie ma zmiany w tym interfejsie dla kolumn rzadkich ani dla kolumn column_set . Aplikacje, które muszą wprowadzać modyfikacje schematu, muszą bezpośrednio wykonać odpowiednie Transact-SQL.

Zobacz też

sterownik OLE DB dla programowania programu SQL Server