Если поле имеет фиксированную ширину хранения, NULL занимает то же пространство, что и любое другое значение - ширина поля.
Если поле переменной ширины, значение NULL не занимает места.
В дополнение к пространству, необходимому для хранения нулевого значения, есть также издержки на наличие столбца, который может иметь значение NULL.Для каждой строки один бит используется для каждого столбца, который может иметь значение NULL, чтобы указать, является ли значение для этого столбца нулевым или нет.Это верно, независимо от того, является ли столбец фиксированной или переменной длины.
Причина расхождений, которые вы наблюдали в информации из других источников:
Началопервой статьи немного вводит в заблуждение.В статье речь идет не о стоимости хранения значения NULL, а о стоимости способности хранить значение NULL (т. Е. О стоимости обнуления столбца).Это правда, что для того, чтобы сделать столбец обнуляемым, нужно что-то в пространстве хранения, но как только вы это сделаете, для хранения значения NULL потребуется меньше, чем для хранения значения (для столбцов переменной ширины).
Вторая ссылка, похоже, связана с Microsoft Access.Я не знаю деталей того, как Access хранит значения NULL, но я не удивлюсь, если он отличается от SQL Server.