Jag rekommenderar att du läser detta för en bra förklaring av nulllagring:Hur lagrar SQL Server verkligen NULL-s . Kort sagt, null/not null-biten lagras på en annan plats, noll-bitmappen för raden.
Från artikeln:
Så medan de faktiska värdena för 8-bitars kolumner lagras i 1 byte, det finns extra bitar i radens null-bitmapp som indikerar om den kolumnen är NULL eller inte...så det beror på hur du räknar. Att vara helt exakta, 8-bitars kolumner använder 2 byte , bara dela upp dig på två olika platser.