Delen via


Ondersteuning voor sparsekolommen in OLE DB-stuurprogramma voor SQL Server

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

OLE DB-stuurprogramma downloaden

OLE DB-stuurprogramma voor SQL Server ondersteunt sparse-kolommen. Zie Sparse-kolommen gebruiken en Kolomsets gebruikenvoor meer informatie over sparsekolommen in SQL Server.

Voor meer informatie over ondersteuning voor sparse-kolommen in OLE DB-stuurprogramma voor SQL Server, ONDERSTEUNING voor Sparse-kolommen (OLE DB).

Gebruikersscenario's voor Sparse-kolommen en OLE DB-stuurprogramma voor SQL Server

De volgende tabel bevat een overzicht van de algemene gebruikersscenario's voor OLE DB-stuurprogramma's voor SQL Server-gebruikers met sparsekolommen:

Scenario Gedrag
selecteer * in tabel of IOpenRowset::OpenRowset. Retourneert alle kolommen die geen lid zijn van de sparse-column_set, plus een XML-kolom die de waarden bevat van alle niet-null-kolommen die lid zijn van de parserings-column_set.
Verwijzen naar een kolom op naam. Er kan naar de kolom worden verwezen, ongeacht de status van de geparseerde kolom of column_set lidmaatschap.
Toegang tot column_set lidkolommen via een berekende XML-kolom. Kolommen die lid zijn van de sparse-column_set kunnen worden geopend door de column_set op naam te selecteren en waarden in te voegen en bij te werken door de XML in de column_set kolom bij te werken.

De waarde moet voldoen aan het schema voor column_set kolommen.
Haal metagegevens op voor alle kolommen in een tabel via de DBSCHEMA_COLUMNS schemarijset zonder kolombeperking (OLE DB). Retourneert een rij voor alle kolommen die geen lid zijn van een column_set. Als de tabel een sparse-column_setheeft, wordt er een rij geretourneerd.

Houd er rekening mee dat hiermee geen metagegevens worden geretourneerd voor kolommen die lid zijn van een column_set.
Metagegevens voor alle kolommen ophalen, ongeacht de parsiteit of het lidmaatschap van een column_set. Dit kan een zeer groot aantal rijen retourneren. Roep IDBSchemaRowset::GetRowset aan voor de DBSCHEMA_COLUMNS_EXTENDED schemarijset.
Haal alleen metagegevens op voor kolommen die lid zijn van een column_set. Dit kan een zeer groot aantal rijen retourneren. Roep IDBSchemaRowset::GetRowset aan voor de DBSCHEMA_SPARSE_COLUMN_SET schemarijset.
Bepalen of een kolom sparse is. Raadpleeg de kolom SS_IS_SPARSE van de DBSCHEMA_COLUMNS schemarijset (OLE DB).
Bepalen of een kolom een column_setis. Raadpleeg de kolom SS_IS_COLUMN_SET van de DBSCHEMA_COLUMNS schemarijset. Of raadpleeg dwFlags geretourneerd door IColumnsinfo::GetColumnInfo of DBCOLUMNFLAGS in de rijenset geretourneerd door IColumnsRowset::GetColumnsRowset. Voor column_set kolommen wordt DBCOLUMNFLAGS_SS_ISCOLUMNSET ingesteld.
Importeren en exporteren van sparsekolommen per BCP voor een tabel zonder column_set. Er is geen wijziging in gedrag ten opzichte van eerdere versies van HET OLE DB-stuurprogramma voor SQL Server.
Importeren en exporteren van sparse kolommen per BCP voor een tabel met een column_set. De column_set wordt op dezelfde manier geïmporteerd en geëxporteerd als XML; dat wil gezegd, als varbinary(max) als afhankelijk als binair type, of als nvarchar(max) als afhankelijk als een teken of wchar type.

Kolommen die lid zijn van de sparse-column_set worden niet als afzonderlijke kolommen geëxporteerd; ze worden alleen geëxporteerd in de waarde van de column_set.
query-out gedrag voor BCP. Er is geen wijziging aangebracht in de verwerking van expliciet benoemde kolommen uit eerdere versies van OLE DB-stuurprogramma voor SQL Server.

Scenario's met betrekking tot importeren en exporteren tussen tabellen met verschillende schema's kunnen speciale verwerking vereisen.

Zie BCP-ondersteuning (Bulk Copy) voor Sparse-kolommen verderop in dit onderwerp voor meer informatie over BCP.

Down-Level clientgedrag

Clients op down-level retourneren alleen metagegevens voor kolommen die geen lid zijn van de sparse-column_set voor SQLColumns en DBSCHEMA_COLUMNS.

Clients op down-level hebben toegang tot kolommen die lid zijn van de sparse-column_set op naam. De column_set kolom is toegankelijk als een XML-kolom voor SQL Server 2005-clients (9.x).

BCP-ondersteuning (Bulk Copy) voor Sparse-kolommen

Er zijn geen wijzigingen in de BCP-API in OLE DB voor de sparsekolommen of column_set functies.

Als een tabel een column_setheeft, worden sparse kolommen niet als afzonderlijke kolommen verwerkt. De waarden van alle sparsekolommen worden opgenomen in de waarde van de column_set, die op dezelfde manier worden geëxporteerd als een XML-kolom; dat wil gezegd, zoals varbinary(max) als afhankelijk als binair type, of als nvarchar(max) als afhankelijk als een teken of wchar type). Bij het importeren moet de column_set-waarde voldoen aan het schema van de column_set.

Voor query-outbewerkingen bewerkingen is er geen wijziging in de manier waarop expliciet naar kolommen wordt verwezen. column_set kolommen hetzelfde gedrag hebben als XML-kolommen en sparseriteit heeft geen invloed op de verwerking van benoemde sparse-kolommen.

Als query-out echter wordt gebruikt voor export en u verwijst naar sparsekolommen die lid zijn van de sparsekolom die op naam zijn ingesteld, kunt u geen directe import uitvoeren in een vergelijkbare gestructureerde tabel. Dit komt doordat BCP metagegevens gebruikt die consistent zijn met een selecteer * bewerking voor het importeren en niet kan overeenkomen met column_set lidkolommen met deze metagegevens. Als u column_set lidkolommen afzonderlijk wilt importeren, moet u een weergave definiëren in de tabel die verwijst naar de gewenste column_set kolommen en moet u de importbewerking uitvoeren met behulp van de weergave.

Zie ook

OLE DB-stuurprogramma voor SQL Server-