Le stockage d'un NULL dans une colonne ne coûte ni n'économise spécifiquement d'espace. Pour les données de longueur fixe, tout l'espace est toujours réservé.
D'autre part, les données de longueur variable ne nécessitent que la longueur des données plus la surcharge pour stocker la longueur réelle. Par exemple, un VARCHAR(n) utilisera 2 octets de données pour indiquer cette longueur réelle, donc l'espace de stockage requis est toujours n+2.
De plus, il convient de mentionner que si SET ANSI_PADDING ON, un char(n) avec une valeur NULL se comportera comme un VARCHAR(n).
Quoi qu'il en soit, vous ne reconnaîtrez pas les "économies" d'espace résultant du stockage des valeurs NULL lors de l'utilisation de SQL Server 2000 ou SQL Server 2005. SQL Server 2008 introduit le concept de colonne clairsemée, qui peut générer des économies pour les colonnes qui sont principalement NULL.