C'è un bell'articolo qui che discute questo punto. Le cose fondamentali da eliminare sono che non vi è alcuna differenza nella dimensione della tabella, tuttavia alcuni utenti preferiscono utilizzare una stringa vuota in quanto può semplificare le query poiché non è necessario eseguire un controllo NULL. Devi solo controllare se la stringa è vuota. Un'altra cosa da notare è cosa significa NULL nel contesto di un database relazionale. Significa che il puntatore al campo del carattere è impostato su 0x00 nell'intestazione della riga, quindi nessun dato a cui accedere.
Aggiorna C'è un articolo dettagliato qui che parla di ciò che sta effettivamente accadendo su base riga
il risultato di DBCC PAGE mostra che sia le stringhe NULL che vuote occupano zero byte .