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)
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í.