Чому в 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!?)