Ondersteuning voor sparsekolommen in OLE DB-stuurprogramma voor SQL Server
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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.