Index Records
Index records use the same FixedVar layout as data records, with a smaller header and pointer fields for navigating the B-Tree.
| Key | Name | Description |
|---|---|---|
00 | Status Bits A | Record type and status flags - whether the record has a null bitmap and variable length columns |
00 | Null Bitmap | One bit per column, set to 1 if the column value is null. Only present if the index contains nullable columns |
00 | Column Count | Number of columns in the record |
00 | Variable Length Column Count | Number of variable length columns stored in the record |
00 | Variable Length Column Offset Array | Two bytes per variable length column giving the offset where each value ends |
00 | Fixed Length Value | Fixed length key and included column values |
00 | Variable Length Value | Variable length key and included column values, located via the offset array |
00 | Uniquifier | Value added to duplicate key values in a non-unique clustered index to make each key unique |
00 | RID | Row Identifier in (File Id:Page Id:Slot Id) format - a direct pointer to a heap row, used by non-clustered indexes on heaps |
00 | Down Page Pointer | Address of the page at the next level down in the B-Tree covering this record's key range. Present in records above the leaf level |