Sdílet prostřednictvím


Podpora řídkých sloupců v ovladači OLE DB pro SQL Server

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed InstanceAzure Synapse AnalyticsPlatform Platform System (PDW)

Stáhnout ovladač OLE DB

Ovladač OLE DB pro SQL Server podporuje řídké sloupce. Další informace o řídkých sloupcích v SQL Serveru najdete v tématu Použití řídkých sloupců a Použití sad sloupců.

Další informace o podpoře řídkých sloupců v ovladači OLE DB pro SQL Server podpora řídkých sloupců (OLE DB).

Uživatelské scénáře pro řídké sloupce a ovladač OLE DB pro SQL Server

Následující tabulka shrnuje běžné uživatelské scénáře pro ovladače OLE DB pro uživatele SQL Serveru se řídkými sloupci:

Scénář Chování
vyberte * z tabulky nebo IOpenRowset::OpenRowset. Vrátí všechny sloupce, které nejsou členy řídké column_set, plus sloupec XML obsahující hodnoty všech sloupců, které nejsou null, které jsou členy řídké column_set.
Odkaz na sloupec podle názvu. Na sloupec se dá odkazovat bez ohledu na jeho stav zhuštěného sloupce nebo column_set členství.
Access column_set členské sloupce prostřednictvím počítaného sloupce XML. Ke sloupcům, které jsou členy řídké column_set, se dostanete tak, že vyberete column_set podle názvu a můžou mít vložené a aktualizované hodnoty aktualizací XML ve sloupci column_set.

Hodnota musí odpovídat schématu pro column_set sloupce.
Načtěte metadata pro všechny sloupce v tabulce prostřednictvím sady řádků schématu DBSCHEMA_COLUMNS bez omezení sloupců (OLE DB). Vrátí řádek pro všechny sloupce, které nejsou členy column_set. Pokud tabulka obsahuje řídké column_set, vrátí se pro ni řádek.

Všimněte si, že to nevrací metadata pro sloupce, které jsou členy column_set.
Načíst metadata pro všechny sloupce bez ohledu na řídké nebo členství v column_set. To může vrátit velmi velký počet řádků. Volání IDBSchemaRowset::GetRowset pro sadu řádků schématu DBSCHEMA_COLUMNS_EXTENDED.
Načíst metadata pouze pro sloupce, které jsou členy column_set. To může vrátit velmi velký počet řádků. Volání IDBSchemaRowset::GetRowset pro sadu řádků schématu DBSCHEMA_SPARSE_COLUMN_SET.
Určete, jestli je sloupec řídký. Projděte si sloupec SS_IS_SPARSE sady řádků schématu DBSCHEMA_COLUMNS (OLE DB).
Určete, zda je sloupec column_set. Projděte si sloupec SS_IS_COLUMN_SET sady řádků schématu DBSCHEMA_COLUMNS. Nebo se podívejte na dwFlags vrácená IColumnsinfo::GetColumnInfo nebo DBCOLUMNFLAGS v sadě řádků vrácených IColumnsRowset::GetColumnsRowset. U sloupců column_set se nastaví DBCOLUMNFLAGS_SS_ISCOLUMNSET.
Import a export zhuštěných sloupců podle BCP pro tabulku bez column_set. Změna chování z předchozích verzí ovladače OLE DB pro SQL Server.
Import a export zhuštěných sloupců podle BCP pro tabulku s column_set. column_set se importuje a exportuje stejným způsobem jako XML; to znamená, že varbinary(max), pokud je vázán jako binární typ, nebo jako nvarchar(max), pokud je vázán jako znak nebo wchar typ.

Sloupce, které jsou členy řídké column_set, se neexportují jako samostatné sloupce; jsou exportovány pouze v hodnotě column_set.
chování dotazu pro BCP. Změna zpracování explicitně pojmenovaných sloupců z předchozích verzí ovladače OLE DB pro SQL Server.

Scénáře týkající se importu a exportu mezi tabulkami s různými schématy můžou vyžadovat zvláštní zpracování.

Další informace o BCP naleznete v tématu Podpora hromadného kopírování (BCP) pro řídké sloupce dále v tomto tématu.

Chování klienta Down-Level

Klienti nižší úrovně budou vracet metadata pouze pro sloupce, které nejsou členy řídké column_set pro SQLColumns a DBSCHEMA_COLUMNS.

Klienti nižší úrovně mají přístup ke sloupcům, které jsou členy řídké column_set podle názvu, a sloupec column_set bude přístupný jako sloupec XML pro klienty SQL Serveru 2005 (9.x).

Podpora hromadného kopírování (BCP) pro řídké sloupce

Rozhraní BCP API v OLE DB neobsahuje žádné změny pro řídké sloupce nebo column_set funkce.

Pokud tabulka obsahuje column_set, řídké sloupce se nezpracují jako odlišné sloupce. Hodnoty všech řídkých sloupců jsou zahrnuty v hodnotě column_set, která se exportuje stejným způsobem jako sloupec XML; to znamená, že varbinary(max), pokud je vázán jako binární typ, nebo jako nvarchar(max), pokud je vázán jako znak nebo wchar typ). Při importu musí hodnota column_set odpovídat schématu column_set.

U operací dotazu neexistuje žádná změna způsobu zpracování explicitně odkazovaných sloupců. column_set sloupce mají stejné chování jako sloupce XML a zhuštěnost nemá žádný vliv na zpracování pojmenovaných řídkých sloupců.

Pokud se však dotazování používá k exportu a odkazujete na řídké sloupce, které jsou členy řídké sady sloupců podle názvu, nemůžete provést přímý import do podobně strukturované tabulky. Důvodem je to, že BCP používá metadata konzistentní s vybrat * operaci importu a nemůže odpovídat column_set členské sloupce s tímto metadatem. Pokud chcete importovat column_set členské sloupce jednotlivě, musíte definovat zobrazení v tabulce, která odkazuje na požadované column_set sloupce, a musíte provést operaci importu pomocí zobrazení.

Viz také

ovladač OLE DB pro SQL Server