Ik raad aan dit te lezen voor een goede uitleg van null-opslag:Hoe slaat SQL Server echt NULL-s op . Kortom, de null/not null-bit wordt op een andere plaats opgeslagen, de null-bitmap voor de rij.
Uit het artikel:
Dus terwijl de werkelijke waarden voor 8 bit-kolommen worden opgeslagen in 1 byte, er zijn extra bits in de null-bitmap van de rij die aangeven of die kolom NULL is of niet ... dus hangt af van hoe je telt. Om volledig te zijn nauwkeurige, 8-bits kolommen gebruiken 2 bytes , gewoon opgesplitst in 2 verschillende locaties.