Mehrwertige Sparsespalten

Gilt für: Windows | Windows Server

Mehrwertige Sparsespalten

Sparsespalten können eine feste oder variable Länge aufweisen und sind insofern eindeutig, als sie keinen Speicherplatz in einem Datensatz in Anspruch nehmen, wenn sie NULL sind oder ihren Standardwert verlassen. Sparsespalten, auch als markierte Spalten bezeichnet, können mehr als einen Wert in einem einzelnen Datensatz enthalten. Markierte Spalten können alle Spaltentypen sein, die in den JET_coltyp Konstanten beschrieben werden. Sie werden erstellt, wenn die Spalte der Tabelle hinzugefügt wird, indem das flag JET_bitColumnTagged in der JET_COLUMNDEF-Struktur im Aufruf von JetAddColumnoder in der JET_COLUMNCREATE-Struktur festgelegt wird, die im Aufruf von JetCreateTableColumnIndex oder JetCreateTableColumnIndex2verwendet wird. Spalten vom Typ JET_coltypLongText und JET_coltypLongBinary werden automatisch als markierte Spalten erstellt.

Nur markierte Spalten können mehrere Werte in einem Datensatz enthalten. Spalten fester oder variabler Länge dürfen nicht mehrere Werte enthalten. Es gibt zwei Typen von mehrwertigen Spalten:

  • Markierte Spalten sind standardmäßig mehrwertige Spalten. Wenn der Spalte ein zweiter Wert hinzugefügt wird, wird er automatisch mehrwertiger.

  • Markierte Spalten, die mit der option JET_bitColumnMultiValued in der JET_COLUMNDEF-Struktur im Aufruf von JetAddColumnerstellt werden.

Die option JET_bitColumnMultiValued ändert die Indizierung der Spalte. Mehrwertige Spalten mit der Option JET_bitColumnMultiValued werden umfangreicher indiziert als markierte mehrwertige Spalten. Diese Spalten werden über alle Werte in der mehrwertigen Spalte indiziert, während markierte mehrwertige Spalten nur über den ersten Wert in der mehrwertigen Spalte indiziert werden. Betrachten Sie beispielsweise eine mehrwertige Spalte, in der die option JET_bitColumnMultiValued festgelegt ist und die erste mehrwertige Spalte in einem Index ist. Diese Spalte enthält drei Werte: A, B und C. Ein Index für diese Spalte enthält Einträge für alle drei Werte A, B und C. Wenn die option JET_bitColumnMultiValued nicht festgelegt wurde, enthält der Index für diese Spalte nur den ersten Wert A im Index.