Чому в SQL Server зберігається крихітний файл з 9B у рядку. Чомусь здається, що в кінці растрової маски NULL є додатковий байт.
USE tempdb; ПОВЕРНУТИСЯ СТВОРИТИ ТАБЛИЦЮ tbl ( я TINYINT НЕ NULL ); ПОВЕРНУТИСЯ ВСТУПИТИ В tbl (i) ЦІННОСТІ (1); ПОВЕРНУТИСЯ DBCC IND ('tempdb', 'tbl', - 1); ПОВЕРНУТИСЯ DBCC TRACEON (3604); - Дамп сторінки піде на консоль ПОВЕРНУТИСЯ DBCC PAGE ('tempdb', 1,168,3); ПОВЕРНУТИСЯ
Результати (я перевернув байти через DBCC PAGE, який показує найменш значущий байт):
Record Size = 9B
10000500 01010000 00
TagA = 0x10 = 1B
TagB = 0x00 = 1B
Null Bitmap Offset = 0x0005 = 2B
Our integer column = 0x01 = 1B
Column Count = 0x0001 = 2B
NULL Bitmap = 0x0000 = 2B (what!?)