Ако полето е с фиксирана ширина, съхраняването на NULL заема същото място като всяка друга стойност - ширината на полето.
Ако полето е с променлива ширина, стойността NULL не заема място.
В допълнение към пространството, необходимо за съхраняване на нулева стойност, има и допълнителни разходи за наличието на колона с нула. За всеки ред се използва един бит за колона с нула, за да се отбележи дали стойността за тази колона е нула или не. Това е вярно, независимо дали колоната е с фиксирана или с променлива дължина.
Причината за несъответствията, които сте забелязали в информация от други източници:
-
Началото на първата статия е малко подвеждащо. Статията не говори за цената на съхраняване на стойност NULL, а за цената на притежаването на способността за съхраняване на NULL (т.е. разходите за правене на колона за нула). Вярно е, че струва нещо в пространството за съхранение, за да направите колона нулева, но след като направите това, отнема по-малко място за съхранение на NULL, отколкото е необходимо за съхраняване на стойност (за колони с променлива ширина).
-
Втората връзка изглежда е въпрос за Microsoft Access. Не знам подробности за това как Access съхранява NULL числа, но няма да се изненадам, ако е различно от SQL Server.